plugins { kotlin("jvm") version "1.9.25" kotlin("plugin.serialization") version "1.9.25" `java-library` `maven-publish` } group = "com.clawdforge" version = "0.1.0" repositories { mavenCentral() } java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } withSourcesJar() } kotlin { jvmToolchain(17) explicitApi() } val ktorVersion = "2.3.12" dependencies { api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1") api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") api("io.ktor:ktor-client-core:$ktorVersion") api("io.ktor:ktor-client-content-negotiation:$ktorVersion") api("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") implementation("io.ktor:ktor-client-cio:$ktorVersion") testImplementation(kotlin("test")) testImplementation("org.junit.jupiter:junit-jupiter:5.10.3") testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1") testImplementation("io.ktor:ktor-client-mock:$ktorVersion") } tasks.test { useJUnitPlatform() testLogging { events("passed", "skipped", "failed") } } tasks.withType().configureEach { compilerOptions { freeCompilerArgs.addAll( "-Xjsr305=strict", "-opt-in=kotlin.RequiresOptIn", ) } } publishing { publications { create("maven") { from(components["java"]) artifactId = "clawdforge" pom { name.set("clawdforge-kotlin") description.set( "Async Kotlin client for the clawdforge HTTP service " + "(a LAN bearer-token-gated wrapper around `claude -p`).", ) licenses { license { name.set("MIT License") url.set("https://opensource.org/licenses/MIT") } } } } } }