b5b21d146a
ci / JVM build + tests (push) Failing after 2m11s
- :agentik-cli переписан с REPL на one-shot subcommands:
conv-ls / conv-new / conv-show / conv-delete / conv-rename /
msgs / send / interrupt / info. Аргумент-парсер — kotlinx.cli 0.3.6
(clikt 5.x отвергнут из-за upstream-бага duplicate symbol
selfAndAncestors между clikt и clikt-mordant, issue #598).
- :client: events() переведён с httpClient.get() на
prepareGet()+execute{} — get() дожидается полного тела, а SSE
не закрывается никогда, поэтому подписка висела вечно. (Это
же объясняет, почему TUI agent.events() фактически был
нерабочим на реальном сервере.)
- :client KMP-конверсия (jvm + 5 desktop-native) уже была в
коммите 9d826a4, здесь она просто подтверждена в статусе
green по всем таргетам.
- REPL-инфраструктура (CliPlatform, EventRenderer, Main,
SessionRepository, SlashCommand + 3 теста) удалена.
- agentik-cli/README переписан под subcommand-формат,
root README обновлён (убран дубликат строки, agentik-tui
убран из 'Запускаемые модули').
Smoke (на 192.168.76.166): info / conv-ls / conv-new /
conv-rename / conv-show / conv-delete / msgs / send
(стримит response-events до event End) / interrupt
(выводит event Interrupted).
67 lines
2.2 KiB
Kotlin
67 lines
2.2 KiB
Kotlin
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||
|
||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||
|
||
plugins {
|
||
alias(libs.plugins.kotlin.multiplatform)
|
||
alias(libs.plugins.kotlin.serialization)
|
||
alias(libs.plugins.shadow)
|
||
}
|
||
|
||
kotlin {
|
||
jvmToolchain(21)
|
||
|
||
// Одноразовый CLI. Пока только JVM. Native-бинари добавим позже —
|
||
// kotlinx.cli 0.3.6 не имеет linuxArm64, а clikt имеет upstream-баг
|
||
// с duplicate symbol selfAndAncestors между clikt и clikt-mordant.
|
||
jvm()
|
||
|
||
sourceSets {
|
||
commonMain.dependencies {
|
||
implementation(project(":proto"))
|
||
implementation(project(":client"))
|
||
|
||
// kotlinx.cli 0.3.6 — KMP subcommand-парсер от JetBrains.
|
||
// clikt 5.x имеет upstream-баг: `duplicate symbol selfAndAncestors`
|
||
// между `clikt` и `clikt-mordant` при линковке native. kotlinx.cli
|
||
// таких проблем нет.
|
||
implementation(libs.kotlinx.cli)
|
||
|
||
implementation(libs.kotlinx.coroutines.core)
|
||
}
|
||
// :agentik-cli — JVM-only one-shot CLI. Нет jvmMain / nativeMain.
|
||
// Всё (включая platformEnv) лежит в commonMain.
|
||
}
|
||
|
||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||
jvm {
|
||
binaries {
|
||
executable {
|
||
mainClass.set("pw.binom.agentik.cli.AgentikCliKt")
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// Fatjar — аналог :standalone.
|
||
val shadowJarTask = tasks.register<ShadowJar>("shadowJar") {
|
||
archiveBaseName.set("agentik-cli")
|
||
archiveClassifier.set("all")
|
||
description = "Self-contained fatjar with all runtime dependencies bundled."
|
||
group = "build"
|
||
|
||
from(tasks.named("jvmJar"))
|
||
from(project.configurations.getByName("jvmRuntimeClasspath"))
|
||
|
||
mergeServiceFiles()
|
||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||
|
||
manifest {
|
||
attributes["Main-Class"] = "pw.binom.agentik.cli.AgentikCliKt"
|
||
attributes["Implementation-Title"] = "agentik-cli"
|
||
attributes["Implementation-Version"] = project.version.toString()
|
||
}
|
||
|
||
includeEmptyDirs = false
|
||
}
|