diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloAppService.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendAppService.kt similarity index 94% rename from packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloAppService.kt rename to packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendAppService.kt index 84b12b7230..60626df0de 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloAppService.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendAppService.kt @@ -1,4 +1,4 @@ -package ai.kilocode.server +package ai.kilocode.backend import ai.kilocode.jetbrains.api.client.DefaultApi import ai.kilocode.jetbrains.api.model.Config @@ -19,20 +19,20 @@ import kotlinx.coroutines.launch * loads project-independent data after the connection is established. * * This is the single entry point for the CLI backend. Both - * [KiloProjectService] and [KiloApiService][ai.kilocode.KiloApiService] + * [KiloBackendProjectService] and [KiloApiService][ai.kilocode.KiloApiService] * (frontend) reach the CLI through this service. * * Data flows use the generated OpenAPI model types directly — * no intermediate DTOs needed at the backend layer. */ @Service(Service.Level.APP) -class KiloAppService(private val cs: CoroutineScope) : Disposable { +class KiloBackendAppService(private val cs: CoroutineScope) : Disposable { companion object { - private val LOG = Logger.getInstance(KiloAppService::class.java) + private val LOG = Logger.getInstance(KiloBackendAppService::class.java) } - private val server = ServerManager(cs) + private val server = KiloBackendCliManager(cs) private val connection = KiloConnectionService(cs, server) private var router: Job? = null diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/ServerManager.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendCliManager.kt similarity index 97% rename from packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/ServerManager.kt rename to packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendCliManager.kt index ba0af70d17..f74bee5921 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/ServerManager.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendCliManager.kt @@ -1,4 +1,4 @@ -package ai.kilocode.server +package ai.kilocode.backend import com.intellij.openapi.application.PathManager import com.intellij.openapi.diagnostic.Logger @@ -27,9 +27,9 @@ import java.util.concurrent.TimeUnit * All concurrent callers of [init] share the same startup flow — only one * CLI process is ever spawned. * - * Not a service — owned and instantiated by [KiloAppService]. + * Not a service — owned and instantiated by [KiloBackendAppService]. */ -class ServerManager(private val cs: CoroutineScope) { +class KiloBackendCliManager(private val cs: CoroutineScope) { sealed class ServerState { data class Ready(val port: Int, val password: String) : ServerState() @@ -38,7 +38,7 @@ class ServerManager(private val cs: CoroutineScope) { } companion object { - private val LOG = Logger.getInstance(ServerManager::class.java) + private val LOG = Logger.getInstance(KiloBackendCliManager::class.java) private const val STARTUP_TIMEOUT_MS = 30_000L private const val KILL_TIMEOUT_SECONDS = 5L private val PORT_REGEX = Regex("""listening on http://[\w.]+:(\d+)""") diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloConnectionService.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendConnectionService.kt similarity index 95% rename from packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloConnectionService.kt rename to packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendConnectionService.kt index 5c1414478a..5e82cb9aa3 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloConnectionService.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendConnectionService.kt @@ -1,4 +1,4 @@ -package ai.kilocode.server +package ai.kilocode.backend import ai.kilocode.jetbrains.api.client.DefaultApi import com.intellij.openapi.diagnostic.Logger @@ -44,11 +44,11 @@ data class SseEvent(val type: String, val data: String) * The generated [DefaultApi] is configured with [apiClient] and exposed via [api] * for typed access to all CLI server endpoints. * - * Not a service — owned and instantiated by [KiloAppService]. + * Not a service — owned and instantiated by [KiloBackendAppService]. */ class KiloConnectionService( - private val cs: CoroutineScope, - private val server: ServerManager, + private val cs: CoroutineScope, + private val server: KiloBackendCliManager, ) { companion object { @@ -138,18 +138,18 @@ class KiloConnectionService( val result = server.init() - if (result is ServerManager.ServerState.Error) { + if (result is KiloBackendCliManager.ServerState.Error) { setState(ConnectionState.Error(result.message)) return } - val ready = result as ServerManager.ServerState.Ready + val ready = result as KiloBackendCliManager.ServerState.Ready port = ready.port password = ready.password // Create dual OkHttp clients (bundled — no IntelliJ platform deps) - val ac = KiloHttpClients.api(password) - val hc = KiloHttpClients.health(password) + val ac = KiloBackendHttpClients.api(password) + val hc = KiloBackendHttpClients.health(password) apiClient = ac healthClient = hc @@ -285,9 +285,9 @@ class KiloConnectionService( private fun close() { api = null - apiClient?.let { KiloHttpClients.shutdown(it) } + apiClient?.let { KiloBackendHttpClients.shutdown(it) } apiClient = null - healthClient?.let { KiloHttpClients.shutdown(it) } + healthClient?.let { KiloBackendHttpClients.shutdown(it) } healthClient = null } diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloHttpClients.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendHttpClients.kt similarity index 97% rename from packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloHttpClients.kt rename to packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendHttpClients.kt index 134b435ce1..dc997ef302 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloHttpClients.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendHttpClients.kt @@ -1,4 +1,4 @@ -package ai.kilocode.server +package ai.kilocode.backend import okhttp3.ConnectionPool import okhttp3.Interceptor @@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit * Both clients bundle Basic Auth via an interceptor and are fully independent * of any IntelliJ-platform-provided HTTP stack. */ -object KiloHttpClients { +object KiloBackendHttpClients { private const val CONNECT_TIMEOUT_MS = 10_000L private const val HEALTH_TIMEOUT_MS = 3_000L diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloProjectService.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendProjectService.kt similarity index 92% rename from packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloProjectService.kt rename to packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendProjectService.kt index ccfcd12f79..7ae1cd9d4b 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/server/KiloProjectService.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/KiloBackendProjectService.kt @@ -1,4 +1,4 @@ -package ai.kilocode.server +package ai.kilocode.backend import ai.kilocode.jetbrains.api.client.DefaultApi import ai.kilocode.rpc.dto.ConnectionStateDto @@ -15,7 +15,7 @@ import kotlinx.coroutines.flow.map /** * Project-level backend service that delegates to the app-level - * [KiloAppService] and scopes CLI API calls to this project's + * [KiloBackendAppService] and scopes CLI API calls to this project's * working directory. * * The VS Code extension likewise scopes calls via `x-kilo-directory`. @@ -23,15 +23,15 @@ import kotlinx.coroutines.flow.map * parameter to each generated API method. */ @Service(Service.Level.PROJECT) -class KiloProjectService( +class KiloBackendProjectService( private val project: Project, private val cs: CoroutineScope, ) { companion object { - private val LOG = Logger.getInstance(KiloProjectService::class.java) + private val LOG = Logger.getInstance(KiloBackendProjectService::class.java) } - private val app: KiloAppService + private val app: KiloBackendAppService get() = service() /** Project working directory sent as the `directory` parameter. */ diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/rpc/KiloProjectRpcApiImpl.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/rpc/KiloProjectRpcApiImpl.kt index 8af77e89aa..7fa831c01f 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/rpc/KiloProjectRpcApiImpl.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/rpc/KiloProjectRpcApiImpl.kt @@ -4,22 +4,21 @@ package ai.kilocode.rpc import ai.kilocode.rpc.dto.ConnectionStateDto import ai.kilocode.rpc.dto.HealthDto -import ai.kilocode.server.KiloProjectService +import ai.kilocode.backend.KiloBackendProjectService import com.intellij.openapi.components.service import com.intellij.platform.project.ProjectId import com.intellij.platform.project.findProjectOrNull import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.emptyFlow /** * Backend implementation of [KiloProjectRpcApi]. * * Resolves the project from the [ProjectId] passed by the frontend - * and delegates to the project-level [KiloProjectService]. + * and delegates to the project-level [KiloBackendProjectService]. */ class KiloProjectRpcApiImpl : KiloProjectRpcApi { - private fun resolve(id: ProjectId): KiloProjectService { + private fun resolve(id: ProjectId): KiloBackendProjectService { val project = id.findProjectOrNull() ?: throw IllegalStateException("Project not found for id: $id") return project.service()