Unwraps the VM service extension response.
Extension responses have the shape: {"result": {"result": "<json string>", "type": "_extensionType"}}
The inner "result" is a JSON-encoded string that needs to be decoded.
Unwraps a raw service extension response (from dart:developer.registerExtension).
Shape: {"result": {"type": "_extensionType", "method": "...", ...actual fields...}}
The success path is NOT double-encoded like Flutter inspector extensions.
Sends a JSON-RPC request to the Flutter VM service over websocket.
Returns the parsed JSON response.
Throws AppDiedException when the app process is detected as dead,
or on connection failure / timeout.