Skip to content
Merged
951 changes: 951 additions & 0 deletions docs/dev/STRUCTURED_JSON_OUTPUT_PLAN.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"schema": "xcodebuildmcp.output.coverage-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to get coverage report: Failed to load result bundle",
"data": {
"summary": {
"status": "FAILED"
},
"coverageScope": "report",
"artifacts": {
"xcresultPath": "<TMPDIR>/invalid.xcresult"
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "Error Domain=XCCovErrorDomain Code=0 \"Failed to load result bundle\""
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"schema": "xcodebuildmcp.output.coverage-result",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"summary": {
"status": "SUCCEEDED",
"coveragePct": 94.9,
"coveredLines": 371,
"executableLines": 391
},
"coverageScope": "report",
"artifacts": {
"xcresultPath": "<TMPDIR>/TestResults.xcresult",
"target": "CalculatorAppTests"
},
"targets": [
{
"name": "CalculatorAppTests.xctest",
"coveragePct": 94.9,
"coveredLines": 371,
"executableLines": 391
}
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"schema": "xcodebuildmcp.output.coverage-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to get file coverage: Failed to load result bundle",
"data": {
"summary": {
"status": "FAILED"
},
"coverageScope": "file",
"artifacts": {
"xcresultPath": "<TMPDIR>/invalid.xcresult",
"file": "SomeFile.swift"
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "Error Domain=XCCovErrorDomain Code=0 \"Failed to load result bundle\""
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"schema": "xcodebuildmcp.output.coverage-result",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"summary": {
"status": "SUCCEEDED",
"coveragePct": 77.8,
"coveredLines": 147,
"executableLines": 189
},
"coverageScope": "file",
"artifacts": {
"xcresultPath": "<TMPDIR>/TestResults.xcresult",
"file": "CalculatorService.swift",
"sourceFilePath": "example_projects/iOS_Calculator/CalculatorAppPackage/Sources/CalculatorAppFeature/CalculatorService.swift"
},
"functions": {
"notCovered": [
{
"line": 159,
"name": "CalculatorService.deleteLastDigit()",
"coveredLines": 0,
"executableLines": 16
},
{
"line": 178,
"name": "CalculatorService.setError(_:)",
"coveredLines": 0,
"executableLines": 5
}
],
"partialCoverage": [
{
"line": 63,
"name": "CalculatorService.inputDecimal()",
"coveragePct": 71.4,
"coveredLines": 10,
"executableLines": 14
},
{
"line": 93,
"name": "CalculatorService.calculate()",
"coveragePct": 84.2,
"coveredLines": 32,
"executableLines": 38
}
],
"fullCoverageCount": 27,
"notCoveredFunctionCount": 8,
"notCoveredLineCount": 27,
"partialCoverageFunctionCount": 4
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"schema": "xcodebuildmcp.output.debug-breakpoint-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to add breakpoint: No active debug session. Provide debugSessionId or attach first.",
"data": {
"action": "add",
"breakpoint": {
"kind": "file-line",
"file": "ContentView.swift",
"line": 42
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"schema": "xcodebuildmcp.output.debug-breakpoint-result",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"action": "add",
"breakpoint": {
"breakpointId": 1,
"kind": "file-line",
"file": "ContentView.swift",
"line": 42
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": true,
"error": "Failed to resolve simulator PID: Invalid device: <UUID>",
"data": {
"action": "attach",
"artifacts": {
"simulatorId": "<UUID>"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"action": "attach",
"session": {
"debugSessionId": "<UUID>",
"connectionState": "attached",
"executionState": "running"
},
"artifacts": {
"simulatorId": "<UUID>",
"processId": "<PID>"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"action": "attach",
"session": {
"debugSessionId": "<UUID>",
"connectionState": "attached",
"executionState": "paused"
},
"artifacts": {
"simulatorId": "<UUID>",
"processId": "<PID>"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": true,
"error": "Failed to resume debugger: No active debug session. Provide debugSessionId or attach first.",
"data": {
"action": "continue"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"action": "continue",
"session": {
"debugSessionId": "<UUID>",
"connectionState": "attached",
"executionState": "running"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": true,
"error": "Failed to detach debugger: No active debug session. Provide debugSessionId or attach first.",
"data": {
"action": "detach"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"schema": "xcodebuildmcp.output.debug-session-action",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"action": "detach",
"session": {
"debugSessionId": "<UUID>",
"connectionState": "detached"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"schema": "xcodebuildmcp.output.debug-command-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to run LLDB command: No active debug session. Provide debugSessionId or attach first.",
"data": {
"command": "breakpoint list",
"outputLines": []
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"schema": "xcodebuildmcp.output.debug-command-result",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"command": "breakpoint list",
"outputLines": [
"Current breakpoints:",
"1: file = 'ContentView.swift', line = 42, exact_match = 0, locations = <LOCATIONS>",
" Names:",
" dap"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"schema": "xcodebuildmcp.output.debug-breakpoint-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to remove breakpoint: No active debug session. Provide debugSessionId or attach first.",
"data": {
"action": "remove",
"breakpoint": {
"breakpointId": 1
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"schema": "xcodebuildmcp.output.debug-breakpoint-result",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"action": "remove",
"breakpoint": {
"breakpointId": 1
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"schema": "xcodebuildmcp.output.debug-stack-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to get stack: No active debug session. Provide debugSessionId or attach first.",
"data": null
}
27 changes: 27 additions & 0 deletions src/snapshot-tests/__fixtures__/json/debugging/stack--success.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"schema": "xcodebuildmcp.output.debug-stack-result",
"schemaVersion": "1",
"didError": false,
"error": null,
"data": {
"threads": [
{
"threadId": "<THREAD_ID>",
"name": "Thread 1",
"truncated": true,
"frames": [
{
"index": "<N>",
"symbol": "static CalculatorApp.$main()",
"displayLocation": "<HOME>/Library/Developer/CoreSimulator/Devices/<UUID>/data/Containers/Bundle/Application/<UUID>/CalculatorApp.app/CalculatorApp.debug.dylib`static CalculatorApp.CalculatorApp.$main() -> ():<OFFSET>"
},
{
"index": "<N>",
"symbol": "main",
"displayLocation": "<HOME>/Library/Developer/CoreSimulator/Devices/<UUID>/data/Containers/Bundle/Application/<UUID>/CalculatorApp.app/CalculatorApp.debug.dylib`main:<OFFSET>"
}
]
}
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"schema": "xcodebuildmcp.output.debug-variables-result",
"schemaVersion": "1",
"didError": true,
"error": "Failed to get variables: No active debug session. Provide debugSessionId or attach first.",
"data": null
}
Loading
Loading