@@ -127,6 +127,37 @@ describe('MessageSchema content variants', () => {
127127 expect ( content . map ( ( c ) => c . type ) ) . toEqual ( [ 'text' , 'image' , 'file' ] ) ;
128128 } ) ;
129129
130+ it ( 'accepts AgentV eval file/text input blocks' , ( ) => {
131+ const msg = MessageSchema . parse ( {
132+ role : 'user' ,
133+ content : [
134+ {
135+ type : 'file' ,
136+ value : '../skills/export-risk-assessment.md' ,
137+ path : '../skills/export-risk-assessment.md' ,
138+ text : '# instructions' ,
139+ resolved_path : '/repo/examples/skills/export-risk-assessment.md' ,
140+ } ,
141+ {
142+ type : 'text' ,
143+ value : 'Assess export risk for this shipment' ,
144+ } ,
145+ ] ,
146+ } ) ;
147+ const content = msg . content as Record < string , unknown > [ ] ;
148+ expect ( content ) . toHaveLength ( 2 ) ;
149+ expect ( content [ 0 ] . value ) . toBe ( '../skills/export-risk-assessment.md' ) ;
150+ expect ( content [ 1 ] . value ) . toBe ( 'Assess export risk for this shipment' ) ;
151+ } ) ;
152+
153+ it ( 'accepts structured object content from eval YAML' , ( ) => {
154+ const msg = MessageSchema . parse ( {
155+ role : 'assistant' ,
156+ content : { riskLevel : 'High' , reasoning : 'CHPL Tier 1 item' } ,
157+ } ) ;
158+ expect ( msg . content ) . toEqual ( { riskLevel : 'High' , reasoning : 'CHPL Tier 1 item' } ) ;
159+ } ) ;
160+
130161 it ( 'accepts undefined content' , ( ) => {
131162 const msg = MessageSchema . parse ( { role : 'tool' } ) ;
132163 expect ( msg . content ) . toBeUndefined ( ) ;
@@ -230,6 +261,20 @@ describe('CodeGraderInputSchema', () => {
230261 const content = result . input [ 0 ] . content as { type : string } [ ] ;
231262 expect ( content ) . toHaveLength ( 2 ) ;
232263 } ) ;
264+
265+ it ( 'accepts structured expectedOutput content objects' , ( ) => {
266+ const inputWithStructuredExpectedOutput = {
267+ ...validInput ,
268+ expectedOutput : [
269+ {
270+ role : 'assistant' ,
271+ content : { riskLevel : 'High' } ,
272+ } ,
273+ ] ,
274+ } ;
275+ const result = CodeGraderInputSchema . parse ( inputWithStructuredExpectedOutput ) ;
276+ expect ( result . expectedOutput [ 0 ] . content ) . toEqual ( { riskLevel : 'High' } ) ;
277+ } ) ;
233278} ) ;
234279
235280describe ( 'CodeGraderResultSchema' , ( ) => {
0 commit comments