From 37971a00d405787eebee58a3237c7d4963a0a764 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 16:50:23 +0000 Subject: [PATCH 1/3] feat: Add tablet and mobile viewport presets to pool dashboard --- .stats.yml | 4 +- src/kernel/resources/browser_pools.py | 64 +++++++++---------- src/kernel/resources/browsers/browsers.py | 32 +++++----- src/kernel/types/browser_create_params.py | 16 ++--- src/kernel/types/browser_create_response.py | 16 ++--- src/kernel/types/browser_list_response.py | 16 ++--- src/kernel/types/browser_pool.py | 16 ++--- .../types/browser_pool_acquire_response.py | 16 ++--- .../types/browser_pool_create_params.py | 16 ++--- .../types/browser_pool_update_params.py | 16 ++--- src/kernel/types/browser_retrieve_response.py | 16 ++--- src/kernel/types/browser_update_response.py | 16 ++--- .../invocation_list_browsers_response.py | 16 ++--- src/kernel/types/shared/browser_viewport.py | 2 +- .../types/shared_params/browser_viewport.py | 2 +- 15 files changed, 132 insertions(+), 132 deletions(-) diff --git a/.stats.yml b/.stats.yml index 91180822..a2cf0466 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 125 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-55409ab573762d8bc010fb34c885651ca858a97d4353b4776b7aafeaaa313257.yml -openapi_spec_hash: 0cf678d80f2a2b73fb9ec82d05c8cc0a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-ea36e417a5dbc80a7dab65b38bd6c892520929d31363e626a3341436d697a17c.yml +openapi_spec_hash: fb15f771cbf9c937a4674f23f9a56050 config_hash: 06186eb40e0058a2a87ac251fc07415d diff --git a/src/kernel/resources/browser_pools.py b/src/kernel/resources/browser_pools.py index 842d3ec4..6df691be 100644 --- a/src/kernel/resources/browser_pools.py +++ b/src/kernel/resources/browser_pools.py @@ -136,14 +136,14 @@ def create( image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). extra_headers: Send extra headers @@ -295,14 +295,14 @@ def update( image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). extra_headers: Send extra headers @@ -684,14 +684,14 @@ async def create( image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). extra_headers: Send extra headers @@ -843,14 +843,14 @@ async def update( image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). extra_headers: Send extra headers diff --git a/src/kernel/resources/browsers/browsers.py b/src/kernel/resources/browsers/browsers.py index a5564b84..ae4279ed 100644 --- a/src/kernel/resources/browsers/browsers.py +++ b/src/kernel/resources/browsers/browsers.py @@ -246,14 +246,14 @@ def create( image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). extra_headers: Send extra headers @@ -824,14 +824,14 @@ async def create( image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). extra_headers: Send extra headers diff --git a/src/kernel/types/browser_create_params.py b/src/kernel/types/browser_create_params.py index 10d53936..f76cc23f 100644 --- a/src/kernel/types/browser_create_params.py +++ b/src/kernel/types/browser_create_params.py @@ -114,14 +114,14 @@ class BrowserCreateParams(TypedDict, total=False): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_create_response.py b/src/kernel/types/browser_create_response.py index ec54e598..8008e6de 100644 --- a/src/kernel/types/browser_create_response.py +++ b/src/kernel/types/browser_create_response.py @@ -103,12 +103,12 @@ class BrowserCreateResponse(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_list_response.py b/src/kernel/types/browser_list_response.py index 4de6bb00..79e1c44f 100644 --- a/src/kernel/types/browser_list_response.py +++ b/src/kernel/types/browser_list_response.py @@ -103,12 +103,12 @@ class BrowserListResponse(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool.py b/src/kernel/types/browser_pool.py index 6bceffe4..0b77264c 100644 --- a/src/kernel/types/browser_pool.py +++ b/src/kernel/types/browser_pool.py @@ -117,14 +117,14 @@ class BrowserPoolConfig(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool_acquire_response.py b/src/kernel/types/browser_pool_acquire_response.py index 6d3b0b68..45fe471d 100644 --- a/src/kernel/types/browser_pool_acquire_response.py +++ b/src/kernel/types/browser_pool_acquire_response.py @@ -103,12 +103,12 @@ class BrowserPoolAcquireResponse(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool_create_params.py b/src/kernel/types/browser_pool_create_params.py index f629691f..3774c107 100644 --- a/src/kernel/types/browser_pool_create_params.py +++ b/src/kernel/types/browser_pool_create_params.py @@ -96,14 +96,14 @@ class BrowserPoolCreateParams(TypedDict, total=False): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_pool_update_params.py b/src/kernel/types/browser_pool_update_params.py index 2688f235..fa860f6e 100644 --- a/src/kernel/types/browser_pool_update_params.py +++ b/src/kernel/types/browser_pool_update_params.py @@ -102,14 +102,14 @@ class BrowserPoolUpdateParams(TypedDict, total=False): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_retrieve_response.py b/src/kernel/types/browser_retrieve_response.py index 48dfa362..66c1420e 100644 --- a/src/kernel/types/browser_retrieve_response.py +++ b/src/kernel/types/browser_retrieve_response.py @@ -103,12 +103,12 @@ class BrowserRetrieveResponse(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/browser_update_response.py b/src/kernel/types/browser_update_response.py index 15c043ea..5a7c7383 100644 --- a/src/kernel/types/browser_update_response.py +++ b/src/kernel/types/browser_update_response.py @@ -103,12 +103,12 @@ class BrowserUpdateResponse(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/invocation_list_browsers_response.py b/src/kernel/types/invocation_list_browsers_response.py index b060f8bb..a37d180a 100644 --- a/src/kernel/types/invocation_list_browsers_response.py +++ b/src/kernel/types/invocation_list_browsers_response.py @@ -103,14 +103,14 @@ class Browser(BaseModel): image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, - 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. For GPU images, recommended - presets use one of these resolutions with refresh rates 60, 30, 25, or 10: - 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, - 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. - Viewports outside this list may exhibit unstable live view or recording - behavior. If refresh_rate is not provided, it will be automatically determined - based on the resolution (higher resolutions use lower refresh rates to keep - bandwidth reasonable). + 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For + GPU images, recommended presets use one of these resolutions with refresh rates + 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, + 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, + 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view + or recording behavior. If refresh_rate is not provided, it will be automatically + determined based on the resolution (higher resolutions use lower refresh rates + to keep bandwidth reasonable). """ diff --git a/src/kernel/types/shared/browser_viewport.py b/src/kernel/types/shared/browser_viewport.py index 7314603e..bfb82aa4 100644 --- a/src/kernel/types/shared/browser_viewport.py +++ b/src/kernel/types/shared/browser_viewport.py @@ -14,7 +14,7 @@ class BrowserViewport(BaseModel): For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: - 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For GPU images, recommended presets use one of these resolutions with refresh rates 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view or recording behavior. diff --git a/src/kernel/types/shared_params/browser_viewport.py b/src/kernel/types/shared_params/browser_viewport.py index 1250eada..5b03b2f9 100644 --- a/src/kernel/types/shared_params/browser_viewport.py +++ b/src/kernel/types/shared_params/browser_viewport.py @@ -14,7 +14,7 @@ class BrowserViewport(TypedDict, total=False): For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: - 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60. + 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For GPU images, recommended presets use one of these resolutions with refresh rates 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view or recording behavior. From 763baf59f95e879d8d9f31566a99fb863354009c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 17:37:55 +0000 Subject: [PATCH 2/3] feat: Add order=desc pagination to telemetry event reads --- .stats.yml | 4 +- src/kernel/resources/browsers/telemetry.py | 40 ++++++++++++++----- .../types/browsers/telemetry_events_params.py | 11 +++++ .../api_resources/browsers/test_telemetry.py | 2 + 4 files changed, 45 insertions(+), 12 deletions(-) diff --git a/.stats.yml b/.stats.yml index a2cf0466..0297d26a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 125 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-ea36e417a5dbc80a7dab65b38bd6c892520929d31363e626a3341436d697a17c.yml -openapi_spec_hash: fb15f771cbf9c937a4674f23f9a56050 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-ebbe079bb2542625826422afd876a3e8b499c579cf45efc5fd50e7982d34df7d.yml +openapi_spec_hash: db850b61a0d71fe9f4b642df8782d7ae config_hash: 06186eb40e0058a2a87ac251fc07415d diff --git a/src/kernel/resources/browsers/telemetry.py b/src/kernel/resources/browsers/telemetry.py index aa3e9ed2..4c7769e7 100644 --- a/src/kernel/resources/browsers/telemetry.py +++ b/src/kernel/resources/browsers/telemetry.py @@ -70,6 +70,7 @@ def events( | Omit = omit, limit: int | Omit = omit, offset: int | Omit = omit, + order: str | Omit = omit, since: str | Omit = omit, until: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -79,11 +80,12 @@ def events( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SyncOffsetPagination[TelemetryEventsResponse]: - """ - Reads a page of telemetry events for the browser session in ascending sequence - order. To page through results, pass the X-Next-Offset value from the previous - response as offset and repeat while X-Has-More is true. Returns an empty list - when telemetry data is unavailable. + """Reads a page of telemetry events for the browser session. + + To page through + results, pass the X-Next-Offset value from the previous response as offset and + repeat while X-Has-More is true. Returns an empty list when telemetry data is + unavailable. Args: category: Restrict results to these event categories. Repeat the parameter for multiple @@ -96,6 +98,13 @@ def events( since is ignored, while until still bounds the page. It is not an event's seq field, so do not derive it from the response body. + order: Read direction. asc (default) reads oldest first, starting from since or the + offset cursor. desc reads newest first: each request returns one page of up to + limit records ending at the offset cursor (or until, or the newest archived + event); combining desc with since is rejected with a 400. In either direction + the category filter applies within the page, so a filtered page may be empty + while X-Has-More is true. + since: Start of the window: an RFC-3339 timestamp, or a duration like 5m meaning that long ago. Defaults to 5m. Ignored when offset is set. @@ -125,6 +134,7 @@ def events( "category": category, "limit": limit, "offset": offset, + "order": order, "since": since, "until": until, }, @@ -234,6 +244,7 @@ def events( | Omit = omit, limit: int | Omit = omit, offset: int | Omit = omit, + order: str | Omit = omit, since: str | Omit = omit, until: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -243,11 +254,12 @@ def events( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> AsyncPaginator[TelemetryEventsResponse, AsyncOffsetPagination[TelemetryEventsResponse]]: - """ - Reads a page of telemetry events for the browser session in ascending sequence - order. To page through results, pass the X-Next-Offset value from the previous - response as offset and repeat while X-Has-More is true. Returns an empty list - when telemetry data is unavailable. + """Reads a page of telemetry events for the browser session. + + To page through + results, pass the X-Next-Offset value from the previous response as offset and + repeat while X-Has-More is true. Returns an empty list when telemetry data is + unavailable. Args: category: Restrict results to these event categories. Repeat the parameter for multiple @@ -260,6 +272,13 @@ def events( since is ignored, while until still bounds the page. It is not an event's seq field, so do not derive it from the response body. + order: Read direction. asc (default) reads oldest first, starting from since or the + offset cursor. desc reads newest first: each request returns one page of up to + limit records ending at the offset cursor (or until, or the newest archived + event); combining desc with since is rejected with a 400. In either direction + the category filter applies within the page, so a filtered page may be empty + while X-Has-More is true. + since: Start of the window: an RFC-3339 timestamp, or a duration like 5m meaning that long ago. Defaults to 5m. Ignored when offset is set. @@ -289,6 +308,7 @@ def events( "category": category, "limit": limit, "offset": offset, + "order": order, "since": since, "until": until, }, diff --git a/src/kernel/types/browsers/telemetry_events_params.py b/src/kernel/types/browsers/telemetry_events_params.py index 223bb2fc..4aa0f13c 100644 --- a/src/kernel/types/browsers/telemetry_events_params.py +++ b/src/kernel/types/browsers/telemetry_events_params.py @@ -39,6 +39,17 @@ class TelemetryEventsParams(TypedDict, total=False): field, so do not derive it from the response body. """ + order: str + """Read direction. + + asc (default) reads oldest first, starting from since or the offset cursor. desc + reads newest first: each request returns one page of up to limit records ending + at the offset cursor (or until, or the newest archived event); combining desc + with since is rejected with a 400. In either direction the category filter + applies within the page, so a filtered page may be empty while X-Has-More is + true. + """ + since: str """ Start of the window: an RFC-3339 timestamp, or a duration like 5m meaning that diff --git a/tests/api_resources/browsers/test_telemetry.py b/tests/api_resources/browsers/test_telemetry.py index 7ad9ca02..3c5dad44 100644 --- a/tests/api_resources/browsers/test_telemetry.py +++ b/tests/api_resources/browsers/test_telemetry.py @@ -34,6 +34,7 @@ def test_method_events_with_all_params(self, client: Kernel) -> None: category=["console"], limit=1, offset=0, + order="order", since="since", until="until", ) @@ -146,6 +147,7 @@ async def test_method_events_with_all_params(self, async_client: AsyncKernel) -> category=["console"], limit=1, offset=0, + order="order", since="since", until="until", ) From be62cfc0511d9d82f38dbfda9ca73691cf0210c2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 17:38:22 +0000 Subject: [PATCH 3/3] release: 0.74.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 9 +++++++++ pyproject.toml | 2 +- src/kernel/_version.py | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f910f1a9..192d2cdd 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.73.0" + ".": "0.74.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 238e659b..66e9f601 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.74.0 (2026-07-06) + +Full Changelog: [v0.73.0...v0.74.0](https://github.com/kernel/kernel-python-sdk/compare/v0.73.0...v0.74.0) + +### Features + +* Add order=desc pagination to telemetry event reads ([763baf5](https://github.com/kernel/kernel-python-sdk/commit/763baf59f95e879d8d9f31566a99fb863354009c)) +* Add tablet and mobile viewport presets to pool dashboard ([37971a0](https://github.com/kernel/kernel-python-sdk/commit/37971a00d405787eebee58a3237c7d4963a0a764)) + ## 0.73.0 (2026-07-01) Full Changelog: [v0.72.0...v0.73.0](https://github.com/kernel/kernel-python-sdk/compare/v0.72.0...v0.73.0) diff --git a/pyproject.toml b/pyproject.toml index 8188c8f8..7d03baca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kernel" -version = "0.73.0" +version = "0.74.0" description = "The official Python library for the kernel API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/kernel/_version.py b/src/kernel/_version.py index 0bd70601..baf9e642 100644 --- a/src/kernel/_version.py +++ b/src/kernel/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "kernel" -__version__ = "0.73.0" # x-release-please-version +__version__ = "0.74.0" # x-release-please-version