Skip to content

feat(cli): structured JSON output for read-only commands#40489

Draft
yury-s wants to merge 1 commit intomicrosoft:mainfrom
yury-s:cli-structured-json
Draft

feat(cli): structured JSON output for read-only commands#40489
yury-s wants to merge 1 commit intomicrosoft:mainfrom
yury-s:cli-structured-json

Conversation

@yury-s
Copy link
Copy Markdown
Member

@yury-s yury-s commented Apr 29, 2026

Summary

  • In --json mode, read-only CLI commands now emit structured payloads instead of formatted text:
    • cookie-list, cookie-get: cookie objects (or null)
    • localstorage-*, sessionstorage-*: items / value
    • route-list: array of route entries
    • request-headers, response-headers: HeadersArray (preserves original case, duplicate header names)
    • request-body, response-body: body string (or null)
    • request: structured RequestDetails
  • With --filename, JSON result is { file: relativePath } (mirrors the snapshot pattern).
  • Text rendering for non-JSON modes is preserved.

In --json mode, the read-only commands now emit structured payloads
instead of the formatted text:

- cookie-list, cookie-get: cookie object(s) or null
- localstorage-list/get, sessionstorage-list/get: items or value
- route-list: array of route entries
- request-headers, response-headers: HeadersArray ({name, value}[])
  preserving original case and duplicate header names
- request-body, response-body: body string (or null)
- request: structured RequestDetails (method, url, status, headers, ...)

When --filename is set, the JSON result is { file: relativePath },
mirroring the snapshot pattern. The text rendering for non-JSON modes
is preserved.
@github-actions
Copy link
Copy Markdown
Contributor

Test results for "MCP"

36 failed
❌ [chrome] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-macos-latest-chrome
❌ [chrome] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-macos-latest-chrome
❌ [chrome] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-ubuntu-latest-chrome
❌ [chrome] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-ubuntu-latest-chrome
❌ [chrome] › mcp/autowait.spec.ts:19 › racy navigation destroys context @mcp-windows-latest-chrome
❌ [chrome] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-windows-latest-chrome
❌ [chrome] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-windows-latest-chrome
❌ [chromium] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-macos-latest-chromium
❌ [chromium] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-macos-latest-chromium
❌ [chromium] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-windows-latest-chromium
❌ [chromium] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-windows-latest-chromium
❌ [chromium] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-ubuntu-latest-chromium
❌ [chromium] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-ubuntu-latest-chromium
❌ [firefox] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-ubuntu-latest-firefox
❌ [firefox] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-ubuntu-latest-firefox
❌ [firefox] › mcp/cli-json.spec.ts:156 › snapshot returns inline snapshot yaml @mcp-windows-latest-firefox
❌ [firefox] › mcp/cli-json.spec.ts:165 › tool error on bad navigation returns JSON error @mcp-windows-latest-firefox
❌ [firefox] › mcp/cli-json.spec.ts:173 › close after open returns closed status @mcp-windows-latest-firefox
❌ [firefox] › mcp/cli-json.spec.ts:179 › close-all after open returns closed sessions @mcp-windows-latest-firefox
❌ [firefox] › mcp/cli-json.spec.ts:185 › requests returns numbered list as JSON result @mcp-windows-latest-firefox
❌ [firefox] › mcp/cli-json.spec.ts:194 › request and per-part commands return JSON result @mcp-windows-latest-firefox
❌ [firefox] › mcp/dashboard.spec.ts:231 › should switch screencast to -s session on show --annotate @mcp-windows-latest-firefox
❌ [firefox] › mcp/dashboard.spec.ts:280 › should disengage annotate mode when --annotate client disconnects @mcp-windows-latest-firefox
❌ [firefox] › mcp/dashboard.spec.ts:347 › save recording streams WebM bytes to the chosen file @mcp-windows-latest-firefox
❌ [firefox] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-windows-latest-firefox
❌ [firefox] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-windows-latest-firefox
❌ [firefox] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-macos-latest-firefox
❌ [firefox] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-macos-latest-firefox
❌ [msedge] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-windows-latest-msedge
❌ [msedge] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-windows-latest-msedge
❌ [webkit] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-macos-latest-webkit
❌ [webkit] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-macos-latest-webkit
❌ [webkit] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-windows-latest-webkit
❌ [webkit] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-windows-latest-webkit
❌ [webkit] › mcp/network.spec.ts:113 › browser_network_request shows full request and response details @mcp-ubuntu-latest-webkit
❌ [webkit] › mcp/network.spec.ts:183 › browser_network_request returns individual parts @mcp-ubuntu-latest-webkit

6863 passed, 927 skipped


Merge workflow run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant