feat(tools): add description and parametersSchema to Tool interface; wire FileWriteTool materialization
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user