Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.52.0"
".": "0.53.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 112
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-4ce09d1a7546ab36f578cb27d819187eeb90c580b11834c7ff7a375aa22f9a20.yml
openapi_spec_hash: 1043ab2d699f6c828680c3352cd4cece
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7d2d29d7598105d50e5118e0bc5ac654361a92cb95555705dbd1d236848e1456.yml
openapi_spec_hash: 10002eae793e08f81932239bbc72b503
config_hash: 08d55086449943a8fec212b870061a3f
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# Changelog

## 0.53.0 (2026-05-12)

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 ([856e76b](https://github.com/kernel/kernel-node-sdk/commit/856e76bd7344762e3ef3041fba14dd325466c558))
* **api:** server-side search on GET /projects ([0f26037](https://github.com/kernel/kernel-node-sdk/commit/0f260373c9266c632c2a2990317a9239caa6f24e))
* browser_pools: add start_url config (KERNEL-1217 PR 2) ([ce4fd29](https://github.com/kernel/kernel-node-sdk/commit/ce4fd29801277fd8d96aa6c56324222f3f8b5d34))
* Scope name uniqueness to project for profiles, session_pools, extensions, credentials ([f552873](https://github.com/kernel/kernel-node-sdk/commit/f552873b94a67ba8d12a71785cb1cf6bcc047033))


### Bug Fixes

* remove incorrect setup-bun input — project uses yarn ([48c75c6](https://github.com/kernel/kernel-node-sdk/commit/48c75c6d157c05d9bd92ca9294efb89f81c65ada))


### Chores

* redact api-key headers in debug logs ([0052fe0](https://github.com/kernel/kernel-node-sdk/commit/0052fe0fbaf8eeca6ac833b2de0a20f0a97a2475))

## 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)
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 2 additions & 0 deletions src/internal/utils/log.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'
) ?
Expand Down
16 changes: 10 additions & 6 deletions src/resources/auth/connections.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
39 changes: 36 additions & 3 deletions src/resources/browser-pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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.
Expand Down Expand Up @@ -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.
*/
Expand Down Expand Up @@ -413,7 +428,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;

Expand All @@ -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.
Expand Down Expand Up @@ -503,7 +527,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;

Expand All @@ -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.
Expand Down
33 changes: 33 additions & 0 deletions src/resources/browsers/browsers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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.
Expand Down
6 changes: 3 additions & 3 deletions src/resources/credentials.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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;

Expand Down
6 changes: 3 additions & 3 deletions src/resources/extensions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand Down
6 changes: 6 additions & 0 deletions src/resources/invocations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down
2 changes: 1 addition & 1 deletion src/resources/profiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
7 changes: 6 additions & 1 deletion src/resources/projects/projects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
2 changes: 1 addition & 1 deletion src/version.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const VERSION = '0.52.0'; // x-release-please-version
export const VERSION = '0.53.0'; // x-release-please-version
2 changes: 2 additions & 0 deletions tests/api-resources/browser-pools.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down Expand Up @@ -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: {
Expand Down
1 change: 1 addition & 0 deletions tests/api-resources/browsers/browsers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down
Loading
Loading