Skip to content
Open
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.55.0"
".": "0.56.0"
}
6 changes: 3 additions & 3 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/kernel-b7a19ff1fbd93322c8cffcd0b397ce2536ca8bff91594e0081bd030d4bec879f.yml
openapi_spec_hash: 9dd204b37a357b19032aea9eb4496645
config_hash: 08d55086449943a8fec212b870061a3f
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-5d96fec7a84722f300bd99db7352d6284141826f3412f6d370ac0926edf03d42.yml
openapi_spec_hash: d4e1a29ac06f9543e0ef69372eb3ff35
config_hash: ae3dea7997fb5d36fa41979f9585ed78
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# Changelog

## 0.56.0 (2026-05-22)

Full Changelog: [v0.55.0...v0.56.0](https://github.com/kernel/kernel-node-sdk/compare/v0.55.0...v0.56.0)

### Features

* [kernel-1116] browser events api integration ([958614b](https://github.com/kernel/kernel-node-sdk/commit/958614b4a683675d7e00d901fee039515f94df6a))
* **api:** type can_reauth_reason as an enum on ManagedAuth ([be986fa](https://github.com/kernel/kernel-node-sdk/commit/be986fabf5305bfaa447f88225750a1c054a1a8e))
* browsers: accept chrome_policy on POST /browsers (KERNEL-1216) ([e3b32bb](https://github.com/kernel/kernel-node-sdk/commit/e3b32bb8178e98e4ea15fb358a3e370dd96d0315))
* EOL persistent browsers: openapi limits ([4dced80](https://github.com/kernel/kernel-node-sdk/commit/4dced80cd4f8cc1057717e0110ac043575290367))
* Expose POST /projects in public API ([e251459](https://github.com/kernel/kernel-node-sdk/commit/e251459afc038f2e15eef5ab77b91b398a75eae1))


### Bug Fixes

* **typescript:** upgrade tsc-multi so that it works with Node 26 ([46e3fb5](https://github.com/kernel/kernel-node-sdk/commit/46e3fb57502dcf44dd4c972fc42fb09c30eab6eb))


### Chores

* **tests:** remove redundant File import ([1677dc1](https://github.com/kernel/kernel-node-sdk/commit/1677dc13811672b22ec12102bda30755fa4d1f6f))

## 0.55.0 (2026-05-15)

Full Changelog: [v0.54.0...v0.55.0](https://github.com/kernel/kernel-node-sdk/compare/v0.54.0...v0.55.0)
Expand Down
42 changes: 40 additions & 2 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ Methods:

Types:

- <code><a href="./src/resources/browsers/browsers.ts">BrowserPersistence</a></code>
- <code><a href="./src/resources/browsers/browsers.ts">BrowserPoolRef</a></code>
- <code><a href="./src/resources/browsers/browsers.ts">BrowserUsage</a></code>
- <code><a href="./src/resources/browsers/browsers.ts">Profile</a></code>
Expand All @@ -82,11 +81,50 @@ Methods:
- <code title="get /browsers/{id}">client.browsers.<a href="./src/resources/browsers/browsers.ts">retrieve</a>(id, { ...params }) -> BrowserRetrieveResponse</code>
- <code title="patch /browsers/{id}">client.browsers.<a href="./src/resources/browsers/browsers.ts">update</a>(id, { ...params }) -> BrowserUpdateResponse</code>
- <code title="get /browsers">client.browsers.<a href="./src/resources/browsers/browsers.ts">list</a>({ ...params }) -> BrowserListResponsesOffsetPagination</code>
- <code title="delete /browsers">client.browsers.<a href="./src/resources/browsers/browsers.ts">delete</a>({ ...params }) -> void</code>
- <code title="post /browsers/{id}/curl">client.browsers.<a href="./src/resources/browsers/browsers.ts">curl</a>(id, { ...params }) -> BrowserCurlResponse</code>
- <code title="delete /browsers/{id}">client.browsers.<a href="./src/resources/browsers/browsers.ts">deleteByID</a>(id) -> void</code>
- <code title="post /browsers/{id}/extensions">client.browsers.<a href="./src/resources/browsers/browsers.ts">loadExtensions</a>(id, { ...params }) -> void</code>

## Telemetry

Types:

- <code><a href="./src/resources/browsers/telemetry.ts">BrowserCallStack</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserConsoleErrorEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserConsoleLogEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserEventContext</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserEventSource</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserHTTPHeaders</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserInteractionClickEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserInteractionKeyEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserInteractionScrollSettledEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserMonitorDisconnectedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserMonitorInitFailedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserMonitorReconnectFailedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserMonitorReconnectedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserMonitorScreenshotEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserNetworkIdleEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserNetworkLoadingFailedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserNetworkRequestEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserNetworkResponseEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageDomContentLoadedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageLayoutSettledEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageLayoutShiftEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageLcpEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageLoadEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageNavigationEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageNavigationSettledEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserPageTabOpenedEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserTelemetryCategoriesConfig</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserTelemetryCategoryConfig</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserTelemetryConfig</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">BrowserTelemetryEvent</a></code>
- <code><a href="./src/resources/browsers/telemetry.ts">TelemetryStreamResponse</a></code>

Methods:

- <code title="get /browsers/{id}/telemetry">client.browsers.telemetry.<a href="./src/resources/browsers/telemetry.ts">stream</a>(id, { ...params }) -> TelemetryStreamResponse</code>

## Replays

Types:
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.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onkernel/sdk",
"version": "0.55.0",
"version": "0.56.0",
"description": "The official TypeScript library for the Kernel API",
"author": "Kernel <>",
"types": "dist/index.d.ts",
Expand Down Expand Up @@ -45,7 +45,7 @@
"publint": "^0.2.12",
"ts-jest": "^29.1.0",
"ts-node": "^10.5.0",
"tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz",
"tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.11/tsc-multi.tgz",
"tsconfig-paths": "^4.0.0",
"tslib": "^2.8.1",
"typescript": "5.8.3",
Expand Down
4 changes: 0 additions & 4 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,10 @@ import {
BrowserCreateResponse,
BrowserCurlParams,
BrowserCurlResponse,
BrowserDeleteParams,
BrowserListParams,
BrowserListResponse,
BrowserListResponsesOffsetPagination,
BrowserLoadExtensionsParams,
BrowserPersistence,
BrowserPoolRef,
BrowserRetrieveParams,
BrowserRetrieveResponse,
Expand Down Expand Up @@ -1038,7 +1036,6 @@ export declare namespace Kernel {

export {
Browsers as Browsers,
type BrowserPersistence as BrowserPersistence,
type BrowserPoolRef as BrowserPoolRef,
type BrowserUsage as BrowserUsage,
type Profile as Profile,
Expand All @@ -1052,7 +1049,6 @@ export declare namespace Kernel {
type BrowserRetrieveParams as BrowserRetrieveParams,
type BrowserUpdateParams as BrowserUpdateParams,
type BrowserListParams as BrowserListParams,
type BrowserDeleteParams as BrowserDeleteParams,
type BrowserCurlParams as BrowserCurlParams,
type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams,
};
Expand Down
54 changes: 49 additions & 5 deletions src/resources/auth/connections.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,15 +269,59 @@ export interface ManagedAuth {
browser_session_id?: string | null;

/**
* Whether automatic re-authentication is possible (has credential, selectors, and
* login_url)
* Whether Kernel can automatically re-authenticate this connection when the
* session expires. Requires a prior successful login plus either a Kernel
* credential or an external credential reference. See `can_reauth_reason` for the
* specific outcome.
*/
can_reauth?: boolean;

/**
* Reason why automatic re-authentication is or is not possible
*/
can_reauth_reason?: string;
* Machine-readable reason for the current value of `can_reauth`. Affirmative
* values (re-auth is possible):
*
* - `external_credential` — an external credential provider is attached
* - `cua_has_credential` — CUA flow with a stored credential
* - `has_credential` — Kernel credential is attached (optimistic; plan viability
* not checked)
* - `viable_plans_found` — at least one stored login plan can be replayed
* - `no_requirements_recorded` — no recorded credential requirements to fail
* against
* - `requirements_satisfiable` — recorded requirements can be met by the attached
* credential
*
* Negative values (a human must complete the login flow):
*
* - `no_prior_successful_login` — connection has never completed a successful
* login
* - `no_credential` — no Kernel or external credential attached
* - `no_viable_plans` — credential attached but no replayable login plan exists
* yet
* - `viable_plans_require_external_action` — stored plans need an external step
* (email link, push, etc.)
* - `requires_external_action` — recorded requirements include an external step
* - `requires_totp_without_secret` — flow needs a TOTP code but no TOTP secret is
* stored
* - `requires_sms_code` — flow needs an SMS code that cannot be received
* automatically
* - `requires_email_code` — flow needs an email code that cannot be received
* automatically
*/
can_reauth_reason?:
| 'external_credential'
| 'cua_has_credential'
| 'has_credential'
| 'viable_plans_found'
| 'no_requirements_recorded'
| 'requirements_satisfiable'
| 'no_prior_successful_login'
| 'no_credential'
| 'no_viable_plans'
| 'viable_plans_require_external_action'
| 'requires_external_action'
| 'requires_totp_without_secret'
| 'requires_sms_code'
| 'requires_email_code';

/**
* Reference to credentials for the auth connection. Use one of:
Expand Down
49 changes: 33 additions & 16 deletions src/resources/browser-pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import { APIResource } from '../core/resource';
import * as Shared from './shared';
import * as BrowsersAPI from './browsers/browsers';
import * as TelemetryAPI from './browsers/telemetry';
import { APIPromise } from '../core/api-promise';
import { buildHeaders } from '../internal/headers';
import { RequestOptions } from '../internal/request-options';
Expand Down Expand Up @@ -238,9 +239,11 @@ export namespace BrowserPool {
proxy_id?: string;

/**
* Optional URL to open when a browser is created for the pool. Navigation is
* best-effort, so navigation failures do not prevent the pool from filling. Reused
* browsers keep the page left by the previous lease.
* 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;

Expand Down Expand Up @@ -323,6 +326,13 @@ export interface BrowserPoolAcquireResponse {
*/
browser_live_view_url?: string;

/**
* Custom Chrome enterprise policy overrides that were applied to this browser
* session, if any. Echoed back for verification. Keys are Chrome enterprise policy
* names.
*/
chrome_policy?: { [key: string]: unknown };

/**
* When the browser session was soft-deleted. Only present for deleted sessions.
*/
Expand All @@ -339,12 +349,6 @@ export interface BrowserPoolAcquireResponse {
*/
kiosk_mode?: boolean;

/**
* @deprecated DEPRECATED: Use timeout_seconds (up to 72 hours) and Profiles
* instead.
*/
persistence?: BrowsersAPI.BrowserPersistence;

/**
* Browser pool this session was acquired from, if any.
*/
Expand All @@ -361,10 +365,19 @@ export interface BrowserPoolAcquireResponse {
proxy_id?: string;

/**
* Start URL requested for the session, if provided.
* URL the session was asked to navigate to on creation, if any. Recorded for
* debugging. Navigation is fire-and-forget — the URL is dispatched to the browser
* without waiting for it to load, and any errors (DNS failure, bad status,
* timeout) are silently dropped. Captures what was requested, not what the browser
* actually loaded.
*/
start_url?: string;

/**
* Active telemetry configuration for the session, if any.
*/
telemetry?: TelemetryAPI.BrowserTelemetryConfig | null;

/**
* Session usage metrics.
*/
Expand Down Expand Up @@ -443,9 +456,11 @@ export interface BrowserPoolCreateParams {
proxy_id?: string;

/**
* Optional URL to open when a browser is created for the pool. Navigation is
* best-effort, so navigation failures do not prevent the pool from filling. Reused
* browsers keep the page left by the previous lease.
* 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;

Expand Down Expand Up @@ -540,9 +555,11 @@ export interface BrowserPoolUpdateParams {
proxy_id?: string;

/**
* Optional URL to open when a browser is created for the pool. Navigation is
* best-effort, so navigation failures do not prevent the pool from filling. Reused
* browsers keep the page left by the previous lease.
* 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;

Expand Down
Loading
Loading