Add Kotlin plugin system (SDK, host, hooks, settings UI)

Implement exteraGram-style plugin architecture for Android and desktop:
- plugins/sdk: BasePlugin API, hook types, settings DSL
- plugins/host: PluginEngine, typed send hooks, FeatureGate, HookRegistry
- JVM ByteBuddy and Android Pine hook backends
- DevServer on port 42690 (JVM)
- Plugins settings screens and PluginUiHost bulletin overlay
- hello_world sample plugin packaged as .fcplugin
- ProGuard keepnames for ru.fromchat.** with shrinking enabled

Co-authored-by: denis0001-dev <denis0001.dev@ya.ru>
This commit is contained in:
Cursor Agent
2026-09-16 22:15:42 +00:00
Unverified
parent 926343e90e
commit b2ef7be57a
33 changed files with 1515 additions and 5 deletions
+35
View File
@@ -0,0 +1,35 @@
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.compose.multiplatform)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.kotlin.multiplatform.library)
}
kotlin {
android {
namespace = "ru.fromchat.plugins.host"
compileSdk = 37
minSdk = 24
}
jvm()
sourceSets {
commonMain.dependencies {
api(project(":plugins:sdk"))
implementation(libs.kotlinx.serialization.json)
implementation(libs.jetbrains.kotlinx.coroutines.core)
implementation(libs.compose.runtime)
implementation(libs.compose.foundation)
implementation(libs.compose.material3)
implementation(libs.compose.ui)
}
jvmMain.dependencies {
implementation("net.bytebuddy:byte-buddy:1.15.11")
implementation("net.bytebuddy:byte-buddy-agent:1.15.11")
}
androidMain.dependencies {
implementation("top.canyie.pine:core:0.3.0")
}
}
}