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/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/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/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/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 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"