feat(kernel,artifacts): inject artifact-kind vocabulary into architect context
This commit is contained in:
+2
@@ -41,6 +41,7 @@ private data class StageSection(
|
||||
@param:JsonProperty("token_budget") val tokenBudget: Int = 4096,
|
||||
@param:JsonProperty("max_retries") val maxRetries: Int = 3,
|
||||
@param:JsonProperty("requires_approval") val requiresApproval: Boolean = false,
|
||||
@param:JsonProperty("inject_artifact_kinds") val injectArtifactKinds: Boolean = false,
|
||||
)
|
||||
|
||||
// condition fields flattened into the transition row
|
||||
@@ -105,6 +106,7 @@ class TomlWorkflowLoader(
|
||||
s.prompt?.let { put("prompt", resolvePromptPath(it, workflowDir)) }
|
||||
s.systemPrompt?.let { put("systemPrompt", resolvePromptPath(it, workflowDir)) }
|
||||
if (s.requiresApproval) put("requiresApproval", "true")
|
||||
if (s.injectArtifactKinds) put("injectArtifactKinds", "true")
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
+20
@@ -97,4 +97,24 @@ class TomlWorkflowLoaderTest {
|
||||
val path = Files.createTempFile("workflow", ".toml").also { it.writeText(bad) }
|
||||
assertThrows<IllegalStateException> { loader.load(path) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `inject_artifact_kinds true maps to metadata key`() {
|
||||
val toml = validToml.replace(
|
||||
"prompt = \"prompts/collect.md\"",
|
||||
"prompt = \"prompts/collect.md\"\ninject_artifact_kinds = true",
|
||||
)
|
||||
val path = Files.createTempFile("workflow", ".toml").also { it.writeText(toml) }
|
||||
val graph = loader.load(path)
|
||||
val collectStage = graph.stages[graph.start]!!
|
||||
assertEquals("true", collectStage.metadata["injectArtifactKinds"])
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `inject_artifact_kinds absent means no metadata key`() {
|
||||
val path = Files.createTempFile("workflow", ".toml").also { it.writeText(validToml) }
|
||||
val graph = loader.load(path)
|
||||
val collectStage = graph.stages[graph.start]!!
|
||||
assertEquals(null, collectStage.metadata["injectArtifactKinds"])
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user