From c591523059b7032d3081b7c2d996f92ede3eeff7 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 27 May 2026 20:48:09 +0000
Subject: [PATCH 01/10] feat: Support Byteful mobile proxies
---
.stats.yml | 4 +-
src/resources/proxies.ts | 390 +--------------------------------------
2 files changed, 12 insertions(+), 382 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 3cfc09d4..834590a5 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-3b34d85c005a4058ac1faaea092615af577d12cee6e420f102de57339251672d.yml
-openapi_spec_hash: fad386b8e8712e6639ed9689e9dfc070
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-a32ac633a8f67f3844b6ccb7b97687aec2cf2e2c611df4157c223dfac16db806.yml
+openapi_spec_hash: f8c9aabe60372f28ad9cceed42009274
config_hash: 0f222358f24700d1811c5d27078a3849
diff --git a/src/resources/proxies.ts b/src/resources/proxies.ts
index b2eb5674..be5a4253 100644
--- a/src/resources/proxies.ts
+++ b/src/resources/proxies.ts
@@ -173,76 +173,7 @@ export namespace ProxyCreateResponse {
*/
export interface MobileProxyConfig {
/**
- * Autonomous system number. See https://bgp.potaroo.net/cidr/autnums.html
- */
- asn?: string;
-
- /**
- * Mobile carrier.
- */
- carrier?:
- | 'a1'
- | 'aircel'
- | 'airtel'
- | 'att'
- | 'celcom'
- | 'chinamobile'
- | 'claro'
- | 'comcast'
- | 'cox'
- | 'digi'
- | 'dt'
- | 'docomo'
- | 'dtac'
- | 'etisalat'
- | 'idea'
- | 'kyivstar'
- | 'meo'
- | 'megafon'
- | 'mtn'
- | 'mtnza'
- | 'mts'
- | 'optus'
- | 'orange'
- | 'qwest'
- | 'reliance_jio'
- | 'robi'
- | 'sprint'
- | 'telefonica'
- | 'telstra'
- | 'tmobile'
- | 'tigo'
- | 'tim'
- | 'verizon'
- | 'vimpelcom'
- | 'vodacomza'
- | 'vodafone'
- | 'vivo'
- | 'zain'
- | 'vivabo'
- | 'telenormyanmar'
- | 'kcelljsc'
- | 'swisscom'
- | 'singtel'
- | 'asiacell'
- | 'windit'
- | 'cellc'
- | 'ooredoo'
- | 'drei'
- | 'umobile'
- | 'cableone'
- | 'proximus'
- | 'tele2'
- | 'mobitel'
- | 'o2'
- | 'bouygues'
- | 'free'
- | 'sfr'
- | 'digicel';
-
- /**
- * City name (no spaces, e.g. `sanfrancisco`). If provided, `country` must also be
- * provided.
+ * Provider city alias. Mobile carrier routing can make observed geo vary.
*/
city?: string;
@@ -252,14 +183,9 @@ export namespace ProxyCreateResponse {
country?: string;
/**
- * Two-letter state code.
+ * US-only state code. Mobile carrier routing can make observed geo vary.
*/
state?: string;
-
- /**
- * US ZIP code.
- */
- zip?: string;
}
/**
@@ -403,76 +329,7 @@ export namespace ProxyRetrieveResponse {
*/
export interface MobileProxyConfig {
/**
- * Autonomous system number. See https://bgp.potaroo.net/cidr/autnums.html
- */
- asn?: string;
-
- /**
- * Mobile carrier.
- */
- carrier?:
- | 'a1'
- | 'aircel'
- | 'airtel'
- | 'att'
- | 'celcom'
- | 'chinamobile'
- | 'claro'
- | 'comcast'
- | 'cox'
- | 'digi'
- | 'dt'
- | 'docomo'
- | 'dtac'
- | 'etisalat'
- | 'idea'
- | 'kyivstar'
- | 'meo'
- | 'megafon'
- | 'mtn'
- | 'mtnza'
- | 'mts'
- | 'optus'
- | 'orange'
- | 'qwest'
- | 'reliance_jio'
- | 'robi'
- | 'sprint'
- | 'telefonica'
- | 'telstra'
- | 'tmobile'
- | 'tigo'
- | 'tim'
- | 'verizon'
- | 'vimpelcom'
- | 'vodacomza'
- | 'vodafone'
- | 'vivo'
- | 'zain'
- | 'vivabo'
- | 'telenormyanmar'
- | 'kcelljsc'
- | 'swisscom'
- | 'singtel'
- | 'asiacell'
- | 'windit'
- | 'cellc'
- | 'ooredoo'
- | 'drei'
- | 'umobile'
- | 'cableone'
- | 'proximus'
- | 'tele2'
- | 'mobitel'
- | 'o2'
- | 'bouygues'
- | 'free'
- | 'sfr'
- | 'digicel';
-
- /**
- * City name (no spaces, e.g. `sanfrancisco`). If provided, `country` must also be
- * provided.
+ * Provider city alias. Mobile carrier routing can make observed geo vary.
*/
city?: string;
@@ -482,14 +339,9 @@ export namespace ProxyRetrieveResponse {
country?: string;
/**
- * Two-letter state code.
+ * US-only state code. Mobile carrier routing can make observed geo vary.
*/
state?: string;
-
- /**
- * US ZIP code.
- */
- zip?: string;
}
/**
@@ -636,76 +488,7 @@ export namespace ProxyListResponse {
*/
export interface MobileProxyConfig {
/**
- * Autonomous system number. See https://bgp.potaroo.net/cidr/autnums.html
- */
- asn?: string;
-
- /**
- * Mobile carrier.
- */
- carrier?:
- | 'a1'
- | 'aircel'
- | 'airtel'
- | 'att'
- | 'celcom'
- | 'chinamobile'
- | 'claro'
- | 'comcast'
- | 'cox'
- | 'digi'
- | 'dt'
- | 'docomo'
- | 'dtac'
- | 'etisalat'
- | 'idea'
- | 'kyivstar'
- | 'meo'
- | 'megafon'
- | 'mtn'
- | 'mtnza'
- | 'mts'
- | 'optus'
- | 'orange'
- | 'qwest'
- | 'reliance_jio'
- | 'robi'
- | 'sprint'
- | 'telefonica'
- | 'telstra'
- | 'tmobile'
- | 'tigo'
- | 'tim'
- | 'verizon'
- | 'vimpelcom'
- | 'vodacomza'
- | 'vodafone'
- | 'vivo'
- | 'zain'
- | 'vivabo'
- | 'telenormyanmar'
- | 'kcelljsc'
- | 'swisscom'
- | 'singtel'
- | 'asiacell'
- | 'windit'
- | 'cellc'
- | 'ooredoo'
- | 'drei'
- | 'umobile'
- | 'cableone'
- | 'proximus'
- | 'tele2'
- | 'mobitel'
- | 'o2'
- | 'bouygues'
- | 'free'
- | 'sfr'
- | 'digicel';
-
- /**
- * City name (no spaces, e.g. `sanfrancisco`). If provided, `country` must also be
- * provided.
+ * Provider city alias. Mobile carrier routing can make observed geo vary.
*/
city?: string;
@@ -715,14 +498,9 @@ export namespace ProxyListResponse {
country?: string;
/**
- * Two-letter state code.
+ * US-only state code. Mobile carrier routing can make observed geo vary.
*/
state?: string;
-
- /**
- * US ZIP code.
- */
- zip?: string;
}
/**
@@ -867,76 +645,7 @@ export namespace ProxyCheckResponse {
*/
export interface MobileProxyConfig {
/**
- * Autonomous system number. See https://bgp.potaroo.net/cidr/autnums.html
- */
- asn?: string;
-
- /**
- * Mobile carrier.
- */
- carrier?:
- | 'a1'
- | 'aircel'
- | 'airtel'
- | 'att'
- | 'celcom'
- | 'chinamobile'
- | 'claro'
- | 'comcast'
- | 'cox'
- | 'digi'
- | 'dt'
- | 'docomo'
- | 'dtac'
- | 'etisalat'
- | 'idea'
- | 'kyivstar'
- | 'meo'
- | 'megafon'
- | 'mtn'
- | 'mtnza'
- | 'mts'
- | 'optus'
- | 'orange'
- | 'qwest'
- | 'reliance_jio'
- | 'robi'
- | 'sprint'
- | 'telefonica'
- | 'telstra'
- | 'tmobile'
- | 'tigo'
- | 'tim'
- | 'verizon'
- | 'vimpelcom'
- | 'vodacomza'
- | 'vodafone'
- | 'vivo'
- | 'zain'
- | 'vivabo'
- | 'telenormyanmar'
- | 'kcelljsc'
- | 'swisscom'
- | 'singtel'
- | 'asiacell'
- | 'windit'
- | 'cellc'
- | 'ooredoo'
- | 'drei'
- | 'umobile'
- | 'cableone'
- | 'proximus'
- | 'tele2'
- | 'mobitel'
- | 'o2'
- | 'bouygues'
- | 'free'
- | 'sfr'
- | 'digicel';
-
- /**
- * City name (no spaces, e.g. `sanfrancisco`). If provided, `country` must also be
- * provided.
+ * Provider city alias. Mobile carrier routing can make observed geo vary.
*/
city?: string;
@@ -946,14 +655,9 @@ export namespace ProxyCheckResponse {
country?: string;
/**
- * Two-letter state code.
+ * US-only state code. Mobile carrier routing can make observed geo vary.
*/
state?: string;
-
- /**
- * US ZIP code.
- */
- zip?: string;
}
/**
@@ -1077,76 +781,7 @@ export namespace ProxyCreateParams {
*/
export interface MobileProxyConfig {
/**
- * Autonomous system number. See https://bgp.potaroo.net/cidr/autnums.html
- */
- asn?: string;
-
- /**
- * Mobile carrier.
- */
- carrier?:
- | 'a1'
- | 'aircel'
- | 'airtel'
- | 'att'
- | 'celcom'
- | 'chinamobile'
- | 'claro'
- | 'comcast'
- | 'cox'
- | 'digi'
- | 'dt'
- | 'docomo'
- | 'dtac'
- | 'etisalat'
- | 'idea'
- | 'kyivstar'
- | 'meo'
- | 'megafon'
- | 'mtn'
- | 'mtnza'
- | 'mts'
- | 'optus'
- | 'orange'
- | 'qwest'
- | 'reliance_jio'
- | 'robi'
- | 'sprint'
- | 'telefonica'
- | 'telstra'
- | 'tmobile'
- | 'tigo'
- | 'tim'
- | 'verizon'
- | 'vimpelcom'
- | 'vodacomza'
- | 'vodafone'
- | 'vivo'
- | 'zain'
- | 'vivabo'
- | 'telenormyanmar'
- | 'kcelljsc'
- | 'swisscom'
- | 'singtel'
- | 'asiacell'
- | 'windit'
- | 'cellc'
- | 'ooredoo'
- | 'drei'
- | 'umobile'
- | 'cableone'
- | 'proximus'
- | 'tele2'
- | 'mobitel'
- | 'o2'
- | 'bouygues'
- | 'free'
- | 'sfr'
- | 'digicel';
-
- /**
- * City name (no spaces, e.g. `sanfrancisco`). If provided, `country` must also be
- * provided.
+ * Provider city alias. Mobile carrier routing can make observed geo vary.
*/
city?: string;
@@ -1156,14 +791,9 @@ export namespace ProxyCreateParams {
country?: string;
/**
- * Two-letter state code.
+ * US-only state code. Mobile carrier routing can make observed geo vary.
*/
state?: string;
-
- /**
- * US ZIP code.
- */
- zip?: string;
}
/**
From 05529cc295c8987e0b2aba03f5a81e03850655ea Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 29 May 2026 16:18:58 +0000
Subject: [PATCH 02/10] codegen metadata
---
.stats.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 834590a5..190a6ab6 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-a32ac633a8f67f3844b6ccb7b97687aec2cf2e2c611df4157c223dfac16db806.yml
-openapi_spec_hash: f8c9aabe60372f28ad9cceed42009274
-config_hash: 0f222358f24700d1811c5d27078a3849
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-04da2c2ed5f83c54f59f6c148abcf013cc37282fde2b3b5b263dffab927d5ba2.yml
+openapi_spec_hash: 9b05d6877797e55051a83222fa7652d0
+config_hash: e0741f8035aea13f71e54e0fdb88eaa4
From 131f0e923dc19f803330fb0397fd42aa8c738cd1 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 29 May 2026 17:40:27 +0000
Subject: [PATCH 03/10] feat: api: surface category field on browser telemetry
events
---
.stats.yml | 4 +--
src/resources/browsers/telemetry.ts | 44 +++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 190a6ab6..f41061ca 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-04da2c2ed5f83c54f59f6c148abcf013cc37282fde2b3b5b263dffab927d5ba2.yml
-openapi_spec_hash: 9b05d6877797e55051a83222fa7652d0
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-4bada2a5bdbde93018e5a1b1e80e134acbc5509cfdea94db6e4c5b799eba7b82.yml
+openapi_spec_hash: e0d541d480f5663b1e6bd3bb19a0fe61
config_hash: e0741f8035aea13f71e54e0fdb88eaa4
diff --git a/src/resources/browsers/telemetry.ts b/src/resources/browsers/telemetry.ts
index f9ff2d42..7706a190 100644
--- a/src/resources/browsers/telemetry.ts
+++ b/src/resources/browsers/telemetry.ts
@@ -108,6 +108,8 @@ export namespace BrowserCallStack {
* source_url, and stack_trace. Fields not applicable to the source are absent.
*/
export interface BrowserConsoleErrorEvent {
+ category: 'console';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -188,6 +190,8 @@ export namespace BrowserConsoleErrorEvent {
* A browser console log event (console.log, console.info, console.warn, etc.).
*/
export interface BrowserConsoleLogEvent {
+ category: 'console';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -323,6 +327,8 @@ export type BrowserHTTPHeaders = { [key: string]: unknown };
* A browser user click event captured via injected page script.
*/
export interface BrowserInteractionClickEvent {
+ category: 'interaction';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -386,6 +392,8 @@ export namespace BrowserInteractionClickEvent {
* A browser keyboard event captured via injected page script.
*/
export interface BrowserInteractionKeyEvent {
+ category: 'interaction';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -440,6 +448,8 @@ export namespace BrowserInteractionKeyEvent {
* captured via injected page script.
*/
export interface BrowserInteractionScrollSettledEvent {
+ category: 'interaction';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -505,6 +515,8 @@ export namespace BrowserInteractionScrollSettledEvent {
* page_layout_settled) as unreliable until then.
*/
export interface BrowserMonitorDisconnectedEvent {
+ category: 'system';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -538,6 +550,8 @@ export namespace BrowserMonitorDisconnectedEvent {
* The CDP session could not be initialized.
*/
export interface BrowserMonitorInitFailedEvent {
+ category: 'system';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -572,6 +586,8 @@ export namespace BrowserMonitorInitFailedEvent {
* reconnection attempts. No further telemetry events will arrive on this session.
*/
export interface BrowserMonitorReconnectFailedEvent {
+ category: 'system';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -608,6 +624,8 @@ export namespace BrowserMonitorReconnectFailedEvent {
* so navigation and network tracking restart fresh from this point.
*/
export interface BrowserMonitorReconnectedEvent {
+ category: 'system';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -641,6 +659,8 @@ export namespace BrowserMonitorReconnectedEvent {
* A periodic screenshot of the browser viewport.
*/
export interface BrowserMonitorScreenshotEvent {
+ category: 'system';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -675,6 +695,8 @@ export namespace BrowserMonitorScreenshotEvent {
* in-flight HTTP requests.
*/
export interface BrowserNetworkIdleEvent {
+ category: 'network';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -707,6 +729,8 @@ export interface BrowserNetworkIdleEvent {
* populated in that case.
*/
export interface BrowserNetworkLoadingFailedEvent {
+ category: 'network';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -767,6 +791,8 @@ export namespace BrowserNetworkLoadingFailedEvent {
* A browser network request sent event.
*/
export interface BrowserNetworkRequestEvent {
+ category: 'network';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -854,6 +880,8 @@ export namespace BrowserNetworkRequestEvent {
* fully received, not when headers arrive.
*/
export interface BrowserNetworkResponseEvent {
+ category: 'network';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -934,6 +962,8 @@ export namespace BrowserNetworkResponseEvent {
* A browser DOMContentLoaded event (CDP Page.domContentEventFired).
*/
export interface BrowserPageDomContentLoadedEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -980,6 +1010,8 @@ export namespace BrowserPageDomContentLoadedEvent {
* the 1-second timer.
*/
export interface BrowserPageLayoutSettledEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -1009,6 +1041,8 @@ export interface BrowserPageLayoutSettledEvent {
* A browser cumulative layout shift (CLS) event from the Performance Timeline API.
*/
export interface BrowserPageLayoutShiftEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -1087,6 +1121,8 @@ export namespace BrowserPageLayoutShiftEvent {
* API.
*/
export interface BrowserPageLcpEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -1178,6 +1214,8 @@ export namespace BrowserPageLcpEvent {
* A browser page load event (CDP Page.loadEventFired).
*/
export interface BrowserPageLoadEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -1224,6 +1262,8 @@ export namespace BrowserPageLoadEvent {
* epoch.
*/
export interface BrowserPageNavigationEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -1290,6 +1330,8 @@ export namespace BrowserPageNavigationEvent {
* Independent of network_idle; a single pending request does not block it.
*/
export interface BrowserPageNavigationSettledEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
@@ -1323,6 +1365,8 @@ export interface BrowserPageNavigationSettledEvent {
* treat it as a special case.
*/
export interface BrowserPageTabOpenedEvent {
+ category: 'page';
+
/**
* Provenance metadata identifying which producer emitted the event.
*/
From 27982848c92f285163665421815f46a43cfef129 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 1 Jun 2026 14:20:33 +0000
Subject: [PATCH 04/10] fix(api): move batch + get_mouse_position into Browser
Computer Controls tag
---
.stats.yml | 4 ++--
src/resources/browsers/computer.ts | 3 +++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index f41061ca..8ba534ce 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-4bada2a5bdbde93018e5a1b1e80e134acbc5509cfdea94db6e4c5b799eba7b82.yml
-openapi_spec_hash: e0d541d480f5663b1e6bd3bb19a0fe61
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7548abe9fea7553e12a128b31f7dc7fc33f2558a9f20d2eb33464db5f61ab3ea.yml
+openapi_spec_hash: 4b701cc4b33a2c944a5a9b63e9f364a2
config_hash: e0741f8035aea13f71e54e0fdb88eaa4
diff --git a/src/resources/browsers/computer.ts b/src/resources/browsers/computer.ts
index d67dac60..a8b8d443 100644
--- a/src/resources/browsers/computer.ts
+++ b/src/resources/browsers/computer.ts
@@ -6,6 +6,9 @@ import { buildHeaders } from '../../internal/headers';
import { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';
+/**
+ * Control mouse, keyboard, and screen on the browser instance.
+ */
export class Computer extends APIResource {
/**
* Send an array of computer actions to execute in order on the browser instance.
From f78dbe1a54a8f42e417d44f48fd61aa4d2f5851c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 1 Jun 2026 15:53:44 +0000
Subject: [PATCH 05/10] codegen metadata
---
.stats.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 8ba534ce..e31b9566 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7548abe9fea7553e12a128b31f7dc7fc33f2558a9f20d2eb33464db5f61ab3ea.yml
-openapi_spec_hash: 4b701cc4b33a2c944a5a9b63e9f364a2
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-501a71a04e6a68427e378df10c7327025e3cb177f4550459b5a6eb752a177a25.yml
+openapi_spec_hash: d38661081dd50fded2208424bb19157b
config_hash: e0741f8035aea13f71e54e0fdb88eaa4
From 9bedc8ead677f7bd42866d83f84dc58e5efd15f5 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 15:22:08 +0000
Subject: [PATCH 06/10] codegen metadata
---
.stats.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index e31b9566..8fee23fa 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-501a71a04e6a68427e378df10c7327025e3cb177f4550459b5a6eb752a177a25.yml
-openapi_spec_hash: d38661081dd50fded2208424bb19157b
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7988523e72ff96a93d2913e63ba27c5bb94af9893b94fceeeda64e0b43fb0663.yml
+openapi_spec_hash: ce2ae9f9137d4c2bf947d446d00ebec8
config_hash: e0741f8035aea13f71e54e0fdb88eaa4
From 3f0063f9ed98185f841476f3478f150b0f648261 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 21:01:42 +0000
Subject: [PATCH 07/10] codegen metadata
---
.stats.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 8fee23fa..0dd6d527 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7988523e72ff96a93d2913e63ba27c5bb94af9893b94fceeeda64e0b43fb0663.yml
-openapi_spec_hash: ce2ae9f9137d4c2bf947d446d00ebec8
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-c8f49d6ea6355b703fa0e6cce4277df8954b9730ce4cdd3af5900f37769b40d9.yml
+openapi_spec_hash: ca03a797fb8e4cc79b6be4513f2fc6e7
config_hash: e0741f8035aea13f71e54e0fdb88eaa4
From 5241b72ef99a22cb8d340a734e5dc4c60aa09a84 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 3 Jun 2026 13:40:10 +0000
Subject: [PATCH 08/10] codegen metadata
---
.stats.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 0dd6d527..a84f620b 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-c8f49d6ea6355b703fa0e6cce4277df8954b9730ce4cdd3af5900f37769b40d9.yml
-openapi_spec_hash: ca03a797fb8e4cc79b6be4513f2fc6e7
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-a42305a37f0b2f42afb552acc9a5294c210a5278eb6067df803abe36da45c5b9.yml
+openapi_spec_hash: 4140db7dd999fee4b02e76dfb7d003b5
config_hash: e0741f8035aea13f71e54e0fdb88eaa4
From a5a2d33608865eae65d1dd94c0a82e7da1626dd9 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 3 Jun 2026 15:29:22 +0000
Subject: [PATCH 09/10] feat(api): move browser telemetry SSE stream to
/browsers/{id}/telemetry/stream
---
.stats.yml | 6 +++---
api.md | 2 +-
src/resources/browsers/telemetry.ts | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index a84f620b..5a5e5632 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 117
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-a42305a37f0b2f42afb552acc9a5294c210a5278eb6067df803abe36da45c5b9.yml
-openapi_spec_hash: 4140db7dd999fee4b02e76dfb7d003b5
-config_hash: e0741f8035aea13f71e54e0fdb88eaa4
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-1acd8f0b76ab00e36b53cc3ca90b72b2199f3388b3e307890adb464b87f9a2d8.yml
+openapi_spec_hash: 82003125c1c2c5d82d19270bafb4a6ca
+config_hash: ede72e4ae65cc5a6d6927938b3455c46
diff --git a/api.md b/api.md
index 4ac5b01d..86adf707 100644
--- a/api.md
+++ b/api.md
@@ -123,7 +123,7 @@ Types:
Methods:
-- client.browsers.telemetry.stream(id, { ...params }) -> TelemetryStreamResponse
+- client.browsers.telemetry.stream(id, { ...params }) -> TelemetryStreamResponse
## Replays
diff --git a/src/resources/browsers/telemetry.ts b/src/resources/browsers/telemetry.ts
index 7706a190..74e83d07 100644
--- a/src/resources/browsers/telemetry.ts
+++ b/src/resources/browsers/telemetry.ts
@@ -35,7 +35,7 @@ export class Telemetry extends APIResource {
options?: RequestOptions,
): APIPromise> {
const { 'Last-Event-ID': lastEventID } = params ?? {};
- return this._client.get(path`/browsers/${id}/telemetry`, {
+ return this._client.get(path`/browsers/${id}/telemetry/stream`, {
...options,
headers: buildHeaders([
{
From ca89480f3fae38f814c5bd85dfffe6bf278641f2 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 3 Jun 2026 15:29:57 +0000
Subject: [PATCH 10/10] release: 0.59.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 15 +++++++++++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 115a387a..bfeb4872 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.58.0"
+ ".": "0.59.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d15949e5..37b5c5c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Changelog
+## 0.59.0 (2026-06-03)
+
+Full Changelog: [v0.58.0...v0.59.0](https://github.com/kernel/kernel-node-sdk/compare/v0.58.0...v0.59.0)
+
+### Features
+
+* api: surface category field on browser telemetry events ([131f0e9](https://github.com/kernel/kernel-node-sdk/commit/131f0e923dc19f803330fb0397fd42aa8c738cd1))
+* **api:** move browser telemetry SSE stream to /browsers/{id}/telemetry/stream ([a5a2d33](https://github.com/kernel/kernel-node-sdk/commit/a5a2d33608865eae65d1dd94c0a82e7da1626dd9))
+* Support Byteful mobile proxies ([c591523](https://github.com/kernel/kernel-node-sdk/commit/c591523059b7032d3081b7c2d996f92ede3eeff7))
+
+
+### Bug Fixes
+
+* **api:** move batch + get_mouse_position into Browser Computer Controls tag ([2798284](https://github.com/kernel/kernel-node-sdk/commit/27982848c92f285163665421815f46a43cfef129))
+
## 0.58.0 (2026-05-27)
Full Changelog: [v0.57.0...v0.58.0](https://github.com/kernel/kernel-node-sdk/compare/v0.57.0...v0.58.0)
diff --git a/package.json b/package.json
index b708ad38..df4d823a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@onkernel/sdk",
- "version": "0.58.0",
+ "version": "0.59.0",
"description": "The official TypeScript library for the Kernel API",
"author": "Kernel <>",
"types": "dist/index.d.ts",
diff --git a/src/version.ts b/src/version.ts
index d5defc55..7fd65e71 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.58.0'; // x-release-please-version
+export const VERSION = '0.59.0'; // x-release-please-version