feat(tools): add description and parametersSchema to Tool interface; wire FileWriteTool materialization

This commit is contained in:
2026-05-18 21:39:36 +04:00
parent 24df3b55b3
commit 15d1e09c44
12 changed files with 105 additions and 3 deletions
@@ -2,9 +2,12 @@ package com.correx.core.tools.contract
import com.correx.core.approvals.Tier
import com.correx.core.events.events.ToolRequest
import kotlinx.serialization.json.JsonObject
interface Tool {
val name: String
val description: String
val parametersSchema: JsonObject
val tier: Tier
val requiredCapabilities: Set<ToolCapability>
fun validateRequest(request: ToolRequest): ValidationResult
@@ -5,6 +5,8 @@ import com.correx.core.events.events.ToolRequest
import com.correx.core.events.types.SessionId
import com.correx.core.events.types.StageId
import com.correx.core.events.types.ToolInvocationId
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.buildJsonObject
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
import kotlin.test.assertIs
@@ -13,6 +15,8 @@ class ToolContractTest {
private val stubTool = object : Tool {
override val name: String = "stub"
override val description: String = "Stub tool for testing"
override val parametersSchema: JsonObject = buildJsonObject {}
override val tier: Tier = Tier.T0
override val requiredCapabilities: Set<ToolCapability> = emptySet()
override fun validateRequest(request: ToolRequest): ValidationResult = ValidationResult.Valid