Skip to content

Commit e22835c

Browse files
cameroncookecodex
andcommitted
fix(responses): Address Warden schema and fixture feedback
Normalize volatile SDK_DIR build-setting keys in structured and text snapshot fixtures, and include video-recording captures in the v2 capture-result schema. Co-Authored-By: OpenAI Codex <noreply@openai.com>
1 parent 676b2c1 commit e22835c

11 files changed

Lines changed: 351 additions & 262 deletions

File tree

schemas/structured-output/xcodebuildmcp.output.capture-result/2.schema.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,35 @@
203203
"type",
204204
"uiHierarchy"
205205
]
206+
},
207+
{
208+
"type": "object",
209+
"additionalProperties": false,
210+
"properties": {
211+
"type": {
212+
"const": "video-recording"
213+
},
214+
"state": {
215+
"enum": [
216+
"started",
217+
"stopped"
218+
]
219+
},
220+
"fps": {
221+
"type": "integer",
222+
"minimum": 1
223+
},
224+
"outputFile": {
225+
"type": "string"
226+
},
227+
"sessionId": {
228+
"type": "string"
229+
}
230+
},
231+
"required": [
232+
"type",
233+
"state"
234+
]
206235
}
207236
]
208237
},

src/core/__tests__/structured-output-schema.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,34 @@ describe('structured output schema bundling', () => {
193193
).toBe(true);
194194
});
195195

196+
it('accepts video recording capture payloads in the bumped capture contract', () => {
197+
const schema = getMcpOutputSchema({
198+
schema: 'xcodebuildmcp.output.capture-result',
199+
version: '2',
200+
});
201+
const ajv = new Ajv2020({ allErrors: true, strict: true, validateSchema: true });
202+
const validate = ajv.compile(schema);
203+
204+
expect(
205+
validate({
206+
schema: 'xcodebuildmcp.output.capture-result',
207+
schemaVersion: '2',
208+
didError: false,
209+
error: null,
210+
data: {
211+
summary: { status: 'SUCCEEDED' },
212+
artifacts: { simulatorId: 'A-SIMULATOR-ID' },
213+
capture: {
214+
type: 'video-recording',
215+
state: 'started',
216+
fps: 30,
217+
sessionId: 'recording-session',
218+
},
219+
},
220+
}),
221+
).toBe(true);
222+
});
223+
196224
it('accepts normal and minimal request-bearing envelopes in the bumped contracts', () => {
197225
const ajv = new Ajv2020({ allErrors: true, strict: true, validateSchema: true });
198226
const cases = [

0 commit comments

Comments
 (0)