From d4599cc165913159e7a5891a856e20590afac18b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 07:27:18 +0000 Subject: [PATCH 1/8] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 33f284f..324dd3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 112 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-4ce09d1a7546ab36f578cb27d819187eeb90c580b11834c7ff7a375aa22f9a20.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-4ce09d1a7546ab36f578cb27d819187eeb90c580b11834c7ff7a375aa22f9a20.yml openapi_spec_hash: 1043ab2d699f6c828680c3352cd4cece config_hash: 08d55086449943a8fec212b870061a3f From 399a3d2a2e80dc0f6330d8cd5b64b28c8c859839 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:55:40 +0000 Subject: [PATCH 2/8] feat: Add 'switch' MFA option type for generic method-switcher links --- .stats.yml | 4 ++-- src/resources/auth/connections.ts | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.stats.yml b/.stats.yml index 324dd3f..d0f4a0f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 112 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-4ce09d1a7546ab36f578cb27d819187eeb90c580b11834c7ff7a375aa22f9a20.yml -openapi_spec_hash: 1043ab2d699f6c828680c3352cd4cece +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-81659c4d18e7992d17a0930d6c13c8592a0ff5bb974ea9e2e4b3f46d43b117d2.yml +openapi_spec_hash: f3d12a3a0a5e9ce711fb1c571ee36f9c config_hash: 08d55086449943a8fec212b870061a3f diff --git a/src/resources/auth/connections.ts b/src/resources/auth/connections.ts index 256800d..d581581 100644 --- a/src/resources/auth/connections.ts +++ b/src/resources/auth/connections.ts @@ -464,7 +464,7 @@ export namespace ManagedAuth { * If this field is associated with an MFA option, the type of that option (e.g., * password field linked to "Enter password" option) */ - linked_mfa_type?: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password' | null; + linked_mfa_type?: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password' | 'switch' | null; /** * Field placeholder @@ -487,9 +487,11 @@ export namespace ManagedAuth { label: string; /** - * The MFA delivery method type (includes password for auth method selection pages) + * The MFA delivery method type. Includes 'password' for auth method selection + * pages and 'switch' for generic method-switcher links like "Use another method" + * that do not name a specific method. */ - type: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password'; + type: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password' | 'switch'; /** * Additional instructions from the site @@ -927,7 +929,7 @@ export namespace ConnectionFollowResponse { * If this field is associated with an MFA option, the type of that option (e.g., * password field linked to "Enter password" option) */ - linked_mfa_type?: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password' | null; + linked_mfa_type?: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password' | 'switch' | null; /** * Field placeholder @@ -950,9 +952,11 @@ export namespace ConnectionFollowResponse { label: string; /** - * The MFA delivery method type (includes password for auth method selection pages) + * The MFA delivery method type. Includes 'password' for auth method selection + * pages and 'switch' for generic method-switcher links like "Use another method" + * that do not name a specific method. */ - type: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password'; + type: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'password' | 'switch'; /** * Additional instructions from the site From 0b2a1dbe21a70f5d4bd52e83af000bb994862e98 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 03:39:52 +0000 Subject: [PATCH 3/8] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d0f4a0f..d2492a7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 112 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-81659c4d18e7992d17a0930d6c13c8592a0ff5bb974ea9e2e4b3f46d43b117d2.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-718b49461ceaa1d6cac7854c29dfef9036a83f6632e756c9d1ecf31fd77c57f6.yml openapi_spec_hash: f3d12a3a0a5e9ce711fb1c571ee36f9c config_hash: 08d55086449943a8fec212b870061a3f From 289a15f7c4f4ba72b9b6ab72d63408ba146de0a3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 16:48:49 +0000 Subject: [PATCH 4/8] feat(api): server-side search on GET /projects --- .stats.yml | 4 ++-- src/resources/projects/projects.ts | 7 ++++++- tests/api-resources/projects/projects.test.ts | 9 ++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index d2492a7..229ced7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 112 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-718b49461ceaa1d6cac7854c29dfef9036a83f6632e756c9d1ecf31fd77c57f6.yml -openapi_spec_hash: f3d12a3a0a5e9ce711fb1c571ee36f9c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-86e061884d273a27064593a0de3a4ba366a12a1001181741addb4f781be18ec9.yml +openapi_spec_hash: e0a4ddf4a3302599376756127099488c config_hash: 08d55086449943a8fec212b870061a3f diff --git a/src/resources/projects/projects.ts b/src/resources/projects/projects.ts index b2d1219..fb1827f 100644 --- a/src/resources/projects/projects.ts +++ b/src/resources/projects/projects.ts @@ -155,7 +155,12 @@ export interface ProjectUpdateParams { status?: 'active' | 'archived'; } -export interface ProjectListParams extends OffsetPaginationParams {} +export interface ProjectListParams extends OffsetPaginationParams { + /** + * Case-insensitive substring match against project name + */ + query?: string; +} Projects.Limits = Limits; diff --git a/tests/api-resources/projects/projects.test.ts b/tests/api-resources/projects/projects.test.ts index d3fb12e..229d658 100644 --- a/tests/api-resources/projects/projects.test.ts +++ b/tests/api-resources/projects/projects.test.ts @@ -65,7 +65,14 @@ describe('resource projects', () => { test.skip('list: request options and params are passed correctly', async () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( - client.projects.list({ limit: 100, offset: 0 }, { path: '/_stainless_unknown_path' }), + client.projects.list( + { + limit: 100, + offset: 0, + query: 'query', + }, + { path: '/_stainless_unknown_path' }, + ), ).rejects.toThrow(Kernel.NotFoundError); }); From d1d7378d9102dd4571f0b7be6675c2a98d6faf59 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 21:20:15 +0000 Subject: [PATCH 5/8] feat: Scope name uniqueness to project for profiles, session_pools, extensions, credentials --- .stats.yml | 4 ++-- src/resources/browser-pools.ts | 6 +++--- src/resources/credentials.ts | 6 +++--- src/resources/extensions.ts | 6 +++--- src/resources/profiles.ts | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.stats.yml b/.stats.yml index 229ced7..797624b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 112 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-86e061884d273a27064593a0de3a4ba366a12a1001181741addb4f781be18ec9.yml -openapi_spec_hash: e0a4ddf4a3302599376756127099488c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-b51c72a040c8dfea9c0693de6631feabfffe42922d5feb60b4ac0ee5c83bb8f4.yml +openapi_spec_hash: 8b671cfe4debe8d9ad7c39ba5b0eaf6d config_hash: 08d55086449943a8fec212b870061a3f diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts index f587ded..fa9bd67 100644 --- a/src/resources/browser-pools.ts +++ b/src/resources/browser-pools.ts @@ -220,7 +220,7 @@ export namespace BrowserPool { kiosk_mode?: boolean; /** - * Optional name for the browser pool. Must be unique within the organization. + * Optional name for the browser pool. Must be unique within the project. */ name?: string; @@ -413,7 +413,7 @@ export interface BrowserPoolCreateParams { kiosk_mode?: boolean; /** - * Optional name for the browser pool. Must be unique within the organization. + * Optional name for the browser pool. Must be unique within the project. */ name?: string; @@ -503,7 +503,7 @@ export interface BrowserPoolUpdateParams { kiosk_mode?: boolean; /** - * Optional name for the browser pool. Must be unique within the organization. + * Optional name for the browser pool. Must be unique within the project. */ name?: string; diff --git a/src/resources/credentials.ts b/src/resources/credentials.ts index 5ae0021..ef80c0d 100644 --- a/src/resources/credentials.ts +++ b/src/resources/credentials.ts @@ -122,7 +122,7 @@ export interface CreateCredentialRequest { domain: string; /** - * Unique name for the credential within the organization + * Unique name for the credential within the project */ name: string; @@ -166,7 +166,7 @@ export interface Credential { domain: string; /** - * Unique name for the credential within the organization + * Unique name for the credential within the project */ name: string; @@ -252,7 +252,7 @@ export interface CredentialCreateParams { domain: string; /** - * Unique name for the credential within the organization + * Unique name for the credential within the project */ name: string; diff --git a/src/resources/extensions.ts b/src/resources/extensions.ts index b28eb86..c9e282d 100644 --- a/src/resources/extensions.ts +++ b/src/resources/extensions.ts @@ -132,7 +132,7 @@ export namespace ExtensionListResponse { /** * Optional, easier-to-reference name for the extension. Must be unique within the - * organization. + * project. */ name?: string | null; } @@ -164,7 +164,7 @@ export interface ExtensionUploadResponse { /** * Optional, easier-to-reference name for the extension. Must be unique within the - * organization. + * project. */ name?: string | null; } @@ -188,7 +188,7 @@ export interface ExtensionUploadParams { file: Uploadable; /** - * Optional unique name within the organization to reference this extension. + * Optional unique name within the project to reference this extension. */ name?: string; } diff --git a/src/resources/profiles.ts b/src/resources/profiles.ts index 5d6c63c..aa78a01 100644 --- a/src/resources/profiles.ts +++ b/src/resources/profiles.ts @@ -62,7 +62,7 @@ export class Profiles extends APIResource { export interface ProfileCreateParams { /** - * Optional name of the profile. Must be unique within the organization. + * Optional name of the profile. Must be unique within the project. */ name?: string; } From 886135c2ee56e14b7954392905642bfc15fb80ca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 03:43:24 +0000 Subject: [PATCH 6/8] chore: redact api-key headers in debug logs --- src/internal/utils/log.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/internal/utils/log.ts b/src/internal/utils/log.ts index 912b523..736a419 100644 --- a/src/internal/utils/log.ts +++ b/src/internal/utils/log.ts @@ -107,6 +107,8 @@ export const formatRequestDetails = (details: { name, ( name.toLowerCase() === 'authorization' || + name.toLowerCase() === 'api-key' || + name.toLowerCase() === 'x-api-key' || name.toLowerCase() === 'cookie' || name.toLowerCase() === 'set-cookie' ) ? From daaac653a2fcf9067bca199390bfa539c398918e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 20:42:40 +0000 Subject: [PATCH 7/8] feat: browser_pools: add start_url config (KERNEL-1217 PR 2) --- .stats.yml | 4 +-- src/resources/browser-pools.ts | 33 +++++++++++++++++++ src/resources/browsers/browsers.ts | 33 +++++++++++++++++++ src/resources/invocations.ts | 6 ++++ tests/api-resources/browser-pools.test.ts | 2 ++ tests/api-resources/browsers/browsers.test.ts | 1 + 6 files changed, 77 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 797624b..e769974 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 112 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-b51c72a040c8dfea9c0693de6631feabfffe42922d5feb60b4ac0ee5c83bb8f4.yml -openapi_spec_hash: 8b671cfe4debe8d9ad7c39ba5b0eaf6d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7d2d29d7598105d50e5118e0bc5ac654361a92cb95555705dbd1d236848e1456.yml +openapi_spec_hash: 10002eae793e08f81932239bbc72b503 config_hash: 08d55086449943a8fec212b870061a3f diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts index fa9bd67..c8e38d0 100644 --- a/src/resources/browser-pools.ts +++ b/src/resources/browser-pools.ts @@ -237,6 +237,15 @@ export namespace BrowserPool { */ proxy_id?: string; + /** + * Optional URL to navigate to when a new browser is warmed into the pool. + * Best-effort: failures to navigate do not fail pool fill. Only applied to + * newly-warmed browsers — browsers reused via release/acquire keep whatever URL + * the previous lease left them on. Accepts any URL Chromium can resolve, including + * chrome:// pages. + */ + start_url?: string; + /** * If true, launches the browser in stealth mode to reduce detection by anti-bot * mechanisms. @@ -353,6 +362,12 @@ export interface BrowserPoolAcquireResponse { */ proxy_id?: string; + /** + * URL the session was asked to navigate to on creation, if any. Recorded for + * debugging — navigation is best-effort and may have failed. + */ + start_url?: string; + /** * Session usage metrics. */ @@ -430,6 +445,15 @@ export interface BrowserPoolCreateParams { */ proxy_id?: string; + /** + * Optional URL to navigate to when a new browser is warmed into the pool. + * Best-effort: failures to navigate do not fail pool fill. Only applied to + * newly-warmed browsers — browsers reused via release/acquire keep whatever URL + * the previous lease left them on. Accepts any URL Chromium can resolve, including + * chrome:// pages. + */ + start_url?: string; + /** * If true, launches the browser in stealth mode to reduce detection by anti-bot * mechanisms. @@ -520,6 +544,15 @@ export interface BrowserPoolUpdateParams { */ proxy_id?: string; + /** + * Optional URL to navigate to when a new browser is warmed into the pool. + * Best-effort: failures to navigate do not fail pool fill. Only applied to + * newly-warmed browsers — browsers reused via release/acquire keep whatever URL + * the previous lease left them on. Accepts any URL Chromium can resolve, including + * chrome:// pages. + */ + start_url?: string; + /** * If true, launches the browser in stealth mode to reduce detection by anti-bot * mechanisms. diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index 0cad78e..b8e1db5 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -392,6 +392,12 @@ export interface BrowserCreateResponse { */ proxy_id?: string; + /** + * URL the session was asked to navigate to on creation, if any. Recorded for + * debugging — navigation is best-effort and may have failed. + */ + start_url?: string; + /** * Session usage metrics. */ @@ -498,6 +504,12 @@ export interface BrowserRetrieveResponse { */ proxy_id?: string; + /** + * URL the session was asked to navigate to on creation, if any. Recorded for + * debugging — navigation is best-effort and may have failed. + */ + start_url?: string; + /** * Session usage metrics. */ @@ -604,6 +616,12 @@ export interface BrowserUpdateResponse { */ proxy_id?: string; + /** + * URL the session was asked to navigate to on creation, if any. Recorded for + * debugging — navigation is best-effort and may have failed. + */ + start_url?: string; + /** * Session usage metrics. */ @@ -710,6 +728,12 @@ export interface BrowserListResponse { */ proxy_id?: string; + /** + * URL the session was asked to navigate to on creation, if any. Recorded for + * debugging — navigation is best-effort and may have failed. + */ + start_url?: string; + /** * Session usage metrics. */ @@ -805,6 +829,15 @@ export interface BrowserCreateParams { */ proxy_id?: string; + /** + * Optional URL to navigate to immediately after the browser is created. + * Best-effort: failures to navigate do not fail browser creation. Any pre-existing + * tabs are reduced to a single tab which is then navigated. Accepts any URL + * Chromium can resolve, including chrome:// pages. Ignored when reusing an + * existing persistent session. + */ + start_url?: string; + /** * If true, launches the browser in stealth mode to reduce detection by anti-bot * mechanisms. diff --git a/src/resources/invocations.ts b/src/resources/invocations.ts index 430751b..f722823 100644 --- a/src/resources/invocations.ts +++ b/src/resources/invocations.ts @@ -501,6 +501,12 @@ export namespace InvocationListBrowsersResponse { */ proxy_id?: string; + /** + * URL the session was asked to navigate to on creation, if any. Recorded for + * debugging — navigation is best-effort and may have failed. + */ + start_url?: string; + /** * Session usage metrics. */ diff --git a/tests/api-resources/browser-pools.test.ts b/tests/api-resources/browser-pools.test.ts index 4bc1157..7a473ba 100644 --- a/tests/api-resources/browser-pools.test.ts +++ b/tests/api-resources/browser-pools.test.ts @@ -36,6 +36,7 @@ describe('resource browserPools', () => { save_changes: true, }, proxy_id: 'proxy_id', + start_url: 'https://example.com', stealth: true, timeout_seconds: 60, viewport: { @@ -87,6 +88,7 @@ describe('resource browserPools', () => { save_changes: true, }, proxy_id: 'proxy_id', + start_url: 'https://example.com', stealth: true, timeout_seconds: 60, viewport: { diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 0c2f574..471a51c 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -38,6 +38,7 @@ describe('resource browsers', () => { save_changes: true, }, proxy_id: 'proxy_id', + start_url: 'https://example.com', stealth: true, timeout_seconds: 10, viewport: { From 624d3ee615901b4f4b5f7304a3212139e3078a50 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 20:43:38 +0000 Subject: [PATCH 8/8] release: 0.53.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 16 ++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/version.ts | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index acba76f..2ffa421 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.52.0" + ".": "0.53.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index dc8a2d1..b61d14e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.53.0 (2026-05-11) + +Full Changelog: [v0.52.0...v0.53.0](https://github.com/kernel/kernel-node-sdk/compare/v0.52.0...v0.53.0) + +### Features + +* Add 'switch' MFA option type for generic method-switcher links ([399a3d2](https://github.com/kernel/kernel-node-sdk/commit/399a3d2a2e80dc0f6330d8cd5b64b28c8c859839)) +* **api:** server-side search on GET /projects ([289a15f](https://github.com/kernel/kernel-node-sdk/commit/289a15f7c4f4ba72b9b6ab72d63408ba146de0a3)) +* browser_pools: add start_url config (KERNEL-1217 PR 2) ([daaac65](https://github.com/kernel/kernel-node-sdk/commit/daaac653a2fcf9067bca199390bfa539c398918e)) +* Scope name uniqueness to project for profiles, session_pools, extensions, credentials ([d1d7378](https://github.com/kernel/kernel-node-sdk/commit/d1d7378d9102dd4571f0b7be6675c2a98d6faf59)) + + +### Chores + +* redact api-key headers in debug logs ([886135c](https://github.com/kernel/kernel-node-sdk/commit/886135c2ee56e14b7954392905642bfc15fb80ca)) + ## 0.52.0 (2026-04-29) Full Changelog: [v0.51.0...v0.52.0](https://github.com/kernel/kernel-node-sdk/compare/v0.51.0...v0.52.0) diff --git a/package-lock.json b/package-lock.json index 15c521d..a62fdce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@onkernel/sdk", - "version": "0.52.0", + "version": "0.53.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@onkernel/sdk", - "version": "0.52.0", + "version": "0.53.0", "license": "Apache-2.0", "devDependencies": { "@arethetypeswrong/cli": "^0.17.0", diff --git a/package.json b/package.json index d7532e6..1a8eadb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.52.0", + "version": "0.53.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 612bdd2..16fa1b4 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.52.0'; // x-release-please-version +export const VERSION = '0.53.0'; // x-release-please-version