From 2034a51193390d4f1cc4aab298460dfd3fd92ce4 Mon Sep 17 00:00:00 2001
From: "kernel-internal[bot]"
<260533166+kernel-internal[bot]@users.noreply.github.com>
Date: Thu, 12 Nov 2026 00:09:10 +0000
Subject: [PATCH 1/2] feat: Prepare native OAuth for MCP: path resource,
exchange targets, static exchange client, retention, Clerk OAuth cutoff
Stainless-Generated-From: 3ab7256a5f56ec925b3a769aa2ef0214e6bf0a5f
---
api.md | 1 +
src/resources/auth/auth.ts | 2 +
src/resources/auth/connections.ts | 20 +++
src/resources/auth/index.ts | 1 +
src/resources/browser-pools.ts | 36 +++++
src/resources/browsers/browsers.ts | 144 +++++++++++++++++++
src/resources/invocations.ts | 36 +++++
tests/api-resources/auth/connections.test.ts | 2 +
yarn.lock | 6 +-
9 files changed, 245 insertions(+), 3 deletions(-)
diff --git a/api.md b/api.md
index 491929c8..325dfd86 100644
--- a/api.md
+++ b/api.md
@@ -393,6 +393,7 @@ Types:
- LoginResponse
- ManagedAuth
- ManagedAuthBrowserConfig
+- ManagedAuthBrowserLocation
- ManagedAuthCreateRequest
- ManagedAuthTimelineEvent
- ManagedAuthUpdateRequest
diff --git a/src/resources/auth/auth.ts b/src/resources/auth/auth.ts
index 817d1201..4e00f118 100644
--- a/src/resources/auth/auth.ts
+++ b/src/resources/auth/auth.ts
@@ -14,6 +14,7 @@ import {
LoginResponse,
ManagedAuth,
ManagedAuthBrowserConfig,
+ ManagedAuthBrowserLocation,
ManagedAuthCreateRequest,
ManagedAuthTimelineEvent,
ManagedAuthTimelineEventsOffsetPagination,
@@ -41,6 +42,7 @@ export declare namespace Auth {
type LoginResponse as LoginResponse,
type ManagedAuth as ManagedAuth,
type ManagedAuthBrowserConfig as ManagedAuthBrowserConfig,
+ type ManagedAuthBrowserLocation as ManagedAuthBrowserLocation,
type ManagedAuthCreateRequest as ManagedAuthCreateRequest,
type ManagedAuthTimelineEvent as ManagedAuthTimelineEvent,
type ManagedAuthUpdateRequest as ManagedAuthUpdateRequest,
diff --git a/src/resources/auth/connections.ts b/src/resources/auth/connections.ts
index 2993dc1a..cbb727f9 100644
--- a/src/resources/auth/connections.ts
+++ b/src/resources/auth/connections.ts
@@ -943,6 +943,12 @@ export namespace ManagedAuth {
* URL, kiosk mode, and viewport.
*/
export interface ManagedAuthBrowserConfig {
+ /**
+ * Browser locale for the connection's login, reauthentication, and health-check
+ * sessions. Set on create or update; not supported on login.
+ */
+ location?: ManagedAuthBrowserLocation;
+
/**
* Proxy configuration for managed auth browser sessions. Omit on create to derive
* the default from stealth, or on update and login to preserve or inherit the
@@ -1075,6 +1081,19 @@ export namespace ManagedAuthBrowserConfig {
}
}
+/**
+ * Browser locale applied to browser sessions created for a managed auth
+ * connection.
+ */
+export interface ManagedAuthBrowserLocation {
+ /**
+ * Supported canonical BCP 47 locale for the browser's language and Accept-Language
+ * header. Omit to use the default for the browser's region, or omit on update to
+ * keep the current locale. Null clears it on update.
+ */
+ locale?: string | null;
+}
+
/**
* Request to create an auth connection for a profile and domain
*/
@@ -2838,6 +2857,7 @@ export declare namespace Connections {
type LoginResponse as LoginResponse,
type ManagedAuth as ManagedAuth,
type ManagedAuthBrowserConfig as ManagedAuthBrowserConfig,
+ type ManagedAuthBrowserLocation as ManagedAuthBrowserLocation,
type ManagedAuthCreateRequest as ManagedAuthCreateRequest,
type ManagedAuthTimelineEvent as ManagedAuthTimelineEvent,
type ManagedAuthUpdateRequest as ManagedAuthUpdateRequest,
diff --git a/src/resources/auth/index.ts b/src/resources/auth/index.ts
index ffe55c6e..134ec8e7 100644
--- a/src/resources/auth/index.ts
+++ b/src/resources/auth/index.ts
@@ -6,6 +6,7 @@ export {
type LoginResponse,
type ManagedAuth,
type ManagedAuthBrowserConfig,
+ type ManagedAuthBrowserLocation,
type ManagedAuthCreateRequest,
type ManagedAuthTimelineEvent,
type ManagedAuthUpdateRequest,
diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts
index ad370211..c8b16f6b 100644
--- a/src/resources/browser-pools.ts
+++ b/src/resources/browser-pools.ts
@@ -497,6 +497,13 @@ export interface BrowserPoolAcquireResponse {
*/
proxy_id?: string;
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ replay?: BrowserPoolAcquireResponse.Replay;
+
/**
* URL the session was most recently asked to navigate to, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
@@ -555,6 +562,35 @@ export interface BrowserPoolAcquireResponse {
viewport?: Shared.BrowserViewport;
}
+export namespace BrowserPoolAcquireResponse {
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ export interface Replay {
+ /**
+ * Unique identifier for the replay recording.
+ */
+ replay_id: string;
+
+ /**
+ * Timestamp when replay finished
+ */
+ finished_at?: string | null;
+
+ /**
+ * URL for viewing the replay recording.
+ */
+ replay_view_url?: string;
+
+ /**
+ * Timestamp when replay started
+ */
+ started_at?: string | null;
+ }
+}
+
export interface BrowserPoolCreateParams {
/**
* Number of browsers to maintain in the pool. The maximum size is determined by
diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts
index fb4a1317..15b22c40 100644
--- a/src/resources/browsers/browsers.ts
+++ b/src/resources/browsers/browsers.ts
@@ -1034,6 +1034,13 @@ export interface BrowserCreateResponse {
*/
proxy_id?: string;
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ replay?: BrowserCreateResponse.Replay;
+
/**
* URL the session was most recently asked to navigate to, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
@@ -1092,6 +1099,35 @@ export interface BrowserCreateResponse {
viewport?: Shared.BrowserViewport;
}
+export namespace BrowserCreateResponse {
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ export interface Replay {
+ /**
+ * Unique identifier for the replay recording.
+ */
+ replay_id: string;
+
+ /**
+ * Timestamp when replay finished
+ */
+ finished_at?: string | null;
+
+ /**
+ * URL for viewing the replay recording.
+ */
+ replay_view_url?: string;
+
+ /**
+ * Timestamp when replay started
+ */
+ started_at?: string | null;
+ }
+}
+
export interface BrowserRetrieveResponse {
/**
* Websocket URL for Chrome DevTools Protocol connections to the browser session
@@ -1221,6 +1257,13 @@ export interface BrowserRetrieveResponse {
*/
proxy_id?: string;
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ replay?: BrowserRetrieveResponse.Replay;
+
/**
* URL the session was most recently asked to navigate to, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
@@ -1279,6 +1322,35 @@ export interface BrowserRetrieveResponse {
viewport?: Shared.BrowserViewport;
}
+export namespace BrowserRetrieveResponse {
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ export interface Replay {
+ /**
+ * Unique identifier for the replay recording.
+ */
+ replay_id: string;
+
+ /**
+ * Timestamp when replay finished
+ */
+ finished_at?: string | null;
+
+ /**
+ * URL for viewing the replay recording.
+ */
+ replay_view_url?: string;
+
+ /**
+ * Timestamp when replay started
+ */
+ started_at?: string | null;
+ }
+}
+
export interface BrowserUpdateResponse {
/**
* Websocket URL for Chrome DevTools Protocol connections to the browser session
@@ -1408,6 +1480,13 @@ export interface BrowserUpdateResponse {
*/
proxy_id?: string;
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ replay?: BrowserUpdateResponse.Replay;
+
/**
* URL the session was most recently asked to navigate to, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
@@ -1466,6 +1545,35 @@ export interface BrowserUpdateResponse {
viewport?: Shared.BrowserViewport;
}
+export namespace BrowserUpdateResponse {
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ export interface Replay {
+ /**
+ * Unique identifier for the replay recording.
+ */
+ replay_id: string;
+
+ /**
+ * Timestamp when replay finished
+ */
+ finished_at?: string | null;
+
+ /**
+ * URL for viewing the replay recording.
+ */
+ replay_view_url?: string;
+
+ /**
+ * Timestamp when replay started
+ */
+ started_at?: string | null;
+ }
+}
+
export interface BrowserListResponse {
/**
* Websocket URL for Chrome DevTools Protocol connections to the browser session
@@ -1595,6 +1703,13 @@ export interface BrowserListResponse {
*/
proxy_id?: string;
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ replay?: BrowserListResponse.Replay;
+
/**
* URL the session was most recently asked to navigate to, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
@@ -1653,6 +1768,35 @@ export interface BrowserListResponse {
viewport?: Shared.BrowserViewport;
}
+export namespace BrowserListResponse {
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ export interface Replay {
+ /**
+ * Unique identifier for the replay recording.
+ */
+ replay_id: string;
+
+ /**
+ * Timestamp when replay finished
+ */
+ finished_at?: string | null;
+
+ /**
+ * URL for viewing the replay recording.
+ */
+ replay_view_url?: string;
+
+ /**
+ * Timestamp when replay started
+ */
+ started_at?: string | null;
+ }
+}
+
/**
* Structured response from the browser curl request.
*/
diff --git a/src/resources/invocations.ts b/src/resources/invocations.ts
index d62e152d..73c196c5 100644
--- a/src/resources/invocations.ts
+++ b/src/resources/invocations.ts
@@ -576,6 +576,13 @@ export namespace InvocationListBrowsersResponse {
*/
proxy_id?: string;
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ replay?: Browser.Replay;
+
/**
* URL the session was most recently asked to navigate to, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
@@ -633,6 +640,35 @@ export namespace InvocationListBrowsersResponse {
*/
viewport?: Shared.BrowserViewport;
}
+
+ export namespace Browser {
+ /**
+ * Replay recording started by `start_replay` when this browser was created or
+ * acquired. Omitted otherwise; list replays with
+ * `GET /browsers/{id_or_name}/replays`.
+ */
+ export interface Replay {
+ /**
+ * Unique identifier for the replay recording.
+ */
+ replay_id: string;
+
+ /**
+ * Timestamp when replay finished
+ */
+ finished_at?: string | null;
+
+ /**
+ * URL for viewing the replay recording.
+ */
+ replay_view_url?: string;
+
+ /**
+ * Timestamp when replay started
+ */
+ started_at?: string | null;
+ }
+ }
}
export interface InvocationCreateParams {
diff --git a/tests/api-resources/auth/connections.test.ts b/tests/api-resources/auth/connections.test.ts
index 2523508b..8ee57ec1 100644
--- a/tests/api-resources/auth/connections.test.ts
+++ b/tests/api-resources/auth/connections.test.ts
@@ -31,6 +31,7 @@ describe('resource connections', () => {
allowed_domains: ['login.netflix.com', 'auth.netflix.com'],
auto_reauth: true,
browser: {
+ location: { locale: 'sv-SE' },
proxy: {
id: 'x',
mode: 'direct',
@@ -202,6 +203,7 @@ describe('resource connections', () => {
'id',
{
browser: {
+ location: { locale: 'sv-SE' },
proxy: {
id: 'x',
mode: 'direct',
diff --git a/yarn.lock b/yarn.lock
index 0da86bc3..68d72076 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1307,9 +1307,9 @@ baseline-browser-mapping@^2.10.44:
integrity sha512-ElY12DaROGuan+lMmZ8Cvo/ZUbXPe7Enc/9VU/b1T3Kp4dwytRcNdR8DoSJN5SNJT/CuvcCA0DHDVmMOCePdRQ==
brace-expansion@^2.0.2:
- version "2.1.7"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.7.tgz#14ea3836731823bb24740225ea43b941b436f9d1"
- integrity sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.8.tgz#b4cf1e18069418e97732d5f30b39bb321c41bd9b"
+ integrity sha512-BnlDzDYQoplTsZSvPi86CNzmbcb07X8ufR8fk1zivaiEJlXJkiq1MQyDCVmlWcsWbj6aWXqHnrwwevbrm/Saig==
dependencies:
balanced-match "^1.0.0"
From 44224c99a5fd935bb31023e5126695b06a71644f Mon Sep 17 00:00:00 2001
From: "kernel-internal[bot]"
<260533166+kernel-internal[bot]@users.noreply.github.com>
Date: Thu, 12 Nov 2026 00:13:04 +0000
Subject: [PATCH 2/2] release: 0.147.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 7 +++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 2bf9d984..4fb7843b 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.146.0"
+ ".": "0.147.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b8f82cc1..b203a3f1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [0.147.0](https://github.com/kernel/kernel-node-sdk/compare/v0.146.0...v0.147.0) (2026-11-12)
+
+
+### Features
+
+* Prepare native OAuth for MCP: path resource, exchange targets, static exchange client, retention, Clerk OAuth cutoff ([2034a51](https://github.com/kernel/kernel-node-sdk/commit/2034a51193390d4f1cc4aab298460dfd3fd92ce4))
+
## [0.146.0](https://github.com/kernel/kernel-node-sdk/compare/v0.145.0...v0.146.0) (2026-11-10)
diff --git a/package.json b/package.json
index 26652fb3..8cc34167 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@onkernel/sdk",
- "version": "0.146.0",
+ "version": "0.147.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 6953fb55..7ede2cec 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.146.0'; // x-release-please-version
+export const VERSION = '0.147.0'; // x-release-please-version