fix: enforce array type for agent principles in schema
Remove string option from principles union type. The template defines principles as an array (principles: []) and all agent files should use array format. Block scalar strings that look like lists are a common source of type confusion. Adds test fixture for string-format principles (now invalid). Closes #1594 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b1bfce9aa7
commit
e835a78ba7
|
|
@ -0,0 +1,26 @@
|
||||||
|
# Test: Principles as block scalar string instead of array
|
||||||
|
# Expected: FAIL
|
||||||
|
# Error path: agent.persona.principles
|
||||||
|
# Error expected: array
|
||||||
|
# Error received: string
|
||||||
|
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
id: string-principles
|
||||||
|
name: String Principles
|
||||||
|
title: String Principles
|
||||||
|
icon: ❌
|
||||||
|
hasSidecar: false
|
||||||
|
|
||||||
|
persona:
|
||||||
|
role: Test agent
|
||||||
|
identity: Test identity
|
||||||
|
communication_style: Test style
|
||||||
|
principles: |
|
||||||
|
- This is a string, not an array
|
||||||
|
- Each line is part of one string
|
||||||
|
|
||||||
|
menu:
|
||||||
|
- trigger: help
|
||||||
|
description: Show help
|
||||||
|
action: display_help
|
||||||
|
|
@ -240,12 +240,9 @@ function buildPersonaSchema() {
|
||||||
role: createNonEmptyString('agent.persona.role'),
|
role: createNonEmptyString('agent.persona.role'),
|
||||||
identity: createNonEmptyString('agent.persona.identity'),
|
identity: createNonEmptyString('agent.persona.identity'),
|
||||||
communication_style: createNonEmptyString('agent.persona.communication_style'),
|
communication_style: createNonEmptyString('agent.persona.communication_style'),
|
||||||
principles: z.union([
|
principles: z
|
||||||
createNonEmptyString('agent.persona.principles'),
|
|
||||||
z
|
|
||||||
.array(createNonEmptyString('agent.persona.principles[]'))
|
.array(createNonEmptyString('agent.persona.principles[]'))
|
||||||
.min(1, { message: 'agent.persona.principles must include at least one entry' }),
|
.min(1, { message: 'agent.persona.principles must include at least one entry' }),
|
||||||
]),
|
|
||||||
})
|
})
|
||||||
.strict();
|
.strict();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue