package com.correx.core.kernel.orchestration

import com.correx.core.events.events.LspDiagnostic
import java.nio.file.Path

data class LspDiagnosticsRequest(
    val workspaceRoot: Path,
    val paths: List<String>,
)

data class LspDiagnosticsResult(
    val server: String? = null,
    val diagnostics: List<LspDiagnostic> = emptyList(),
    val skippedReason: String? = null,
)

/** Nondeterministic LSP boundary. The orchestrator records its result before using it. */
fun interface LspDiagnosticsRunner {
    suspend fun pull(request: LspDiagnosticsRequest): LspDiagnosticsResult
}
