- Configure Coil ImageLoader with authenticated Ktor HttpClient on iOS - Extract ContentPartRenderer sub-composables and tool call dispatch into shared commonMain (SharedContentParts.kt, ToolCallParsing.kt) - Add missing iOS handlers: AGENT_UPDATE, VIDEO_URL null fallback - Fix error text fallback inconsistency across platforms - Add memory cache to iOS ImageLoader
69 lines
2.4 KiB
Text
69 lines
2.4 KiB
Text
plugins {
|
|
id("librechat.kmp.library")
|
|
id("librechat.kmp.compose")
|
|
id("librechat.kmp.koin")
|
|
id("librechat.kotlin.serialization")
|
|
alias(libs.plugins.skie)
|
|
}
|
|
|
|
android {
|
|
namespace = "com.garfiec.librechat.shared"
|
|
}
|
|
|
|
kotlin {
|
|
listOf(iosArm64(), iosSimulatorArm64()).forEach { target ->
|
|
target.binaries.framework {
|
|
baseName = "Shared"
|
|
isStatic = true
|
|
// Export core modules so iOS can see all public types through the single framework
|
|
export(project(":core:common"))
|
|
export(project(":core:model"))
|
|
export(project(":core:network"))
|
|
export(project(":core:data"))
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
api(project(":core:common"))
|
|
api(project(":core:model"))
|
|
api(project(":core:network"))
|
|
api(project(":core:data"))
|
|
api(project(":core:ui"))
|
|
implementation(project(":feature:auth"))
|
|
implementation(project(":feature:chat"))
|
|
implementation(project(":feature:conversations"))
|
|
implementation(project(":feature:settings"))
|
|
implementation(project(":feature:agents"))
|
|
implementation(project(":feature:files"))
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.content.negotiation)
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.coroutines.core)
|
|
implementation(libs.kermit)
|
|
implementation(libs.navigation3.ui.kmp)
|
|
implementation(libs.lifecycle.runtime.compose.kmp)
|
|
implementation(libs.lifecycle.viewmodel.compose.kmp)
|
|
implementation(libs.lifecycle.viewmodel.navigation3.kmp)
|
|
implementation(libs.koin.compose)
|
|
implementation(libs.koin.compose.viewmodel)
|
|
implementation(libs.koin.compose.viewmodel.navigation)
|
|
implementation(libs.coil3.compose)
|
|
implementation(libs.coil3.network.ktor)
|
|
}
|
|
iosMain.dependencies {
|
|
implementation(libs.ktor.client.darwin)
|
|
}
|
|
}
|
|
}
|
|
|
|
skie {
|
|
features {
|
|
// All features enabled by default:
|
|
// - Sealed classes → Swift enums (onEnum(of:))
|
|
// - Flow → AsyncSequence
|
|
// - Suspend → async/await
|
|
// No configuration needed for defaults
|
|
}
|
|
}
|