feat(kernel,artifacts): inject artifact-kind vocabulary into architect context
This commit is contained in:
@@ -3,6 +3,7 @@ package com.correx.core.artifacts.kind
|
||||
interface ArtifactKindRegistry {
|
||||
fun register(kind: ArtifactKind)
|
||||
fun get(id: String): ArtifactKind?
|
||||
fun list(): Collection<ArtifactKind>
|
||||
}
|
||||
|
||||
class DefaultArtifactKindRegistry : ArtifactKindRegistry {
|
||||
@@ -18,4 +19,6 @@ class DefaultArtifactKindRegistry : ArtifactKindRegistry {
|
||||
}
|
||||
|
||||
override fun get(id: String): ArtifactKind? = kinds[id]
|
||||
|
||||
override fun list(): Collection<ArtifactKind> = kinds.values.toList()
|
||||
}
|
||||
|
||||
+21
@@ -51,4 +51,25 @@ class ArtifactKindRegistryTest {
|
||||
assert("path" in schema.required)
|
||||
assert("content" in schema.required)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `list returns all registered kinds`() {
|
||||
val ids = registry.list().map { it.id }.toSet()
|
||||
assert("file_written" in ids) { "expected file_written in $ids" }
|
||||
assert("process_result" in ids) { "expected process_result in $ids" }
|
||||
assertEquals(2, ids.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `list reflects newly registered kind`() {
|
||||
val schema = JsonSchema(
|
||||
type = "object",
|
||||
properties = mapOf("x" to JsonSchemaProperty(type = "string")),
|
||||
required = listOf("x"),
|
||||
)
|
||||
registry.register(ConfigArtifactKind(id = "extra", schema = schema, llmEmitted = true))
|
||||
val ids = registry.list().map { it.id }.toSet()
|
||||
assert("extra" in ids) { "expected extra in $ids" }
|
||||
assertEquals(3, ids.size)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user