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.47.0"
".": "0.48.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 104
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-ac10847d991ef8ed89124b5550922cb5726af2b4a4c3396ee6ff82938302fc25.yml
openapi_spec_hash: 0d902563108fe2461708c05336eab40a
config_hash: 16e4457a0bb26e98a335a1c2a572290a
configured_endpoints: 111
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-49a1a92e00d1eb87e91e8527275cb0705fce2edea30e70fea745f134dd451fbd.yml
openapi_spec_hash: 3aa6ab6939790f538332054162fbdedc
config_hash: 9818dd634f87b677410eefd013d7a179
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 0.48.0 (2026-04-10)

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

### Features

* [kernel-1116] add base_url field to browser session response ([50cc800](https://github.com/kernel/kernel-node-sdk/commit/50cc8004d30cb579d1fb789be0092610b0c67d2a))


### Chores

* **internal:** codegen related update ([87b21a8](https://github.com/kernel/kernel-node-sdk/commit/87b21a8d12f82d8f88b6a4651954c6a42f09d201))
* retrigger Stainless codegen for projects resource ([068027a](https://github.com/kernel/kernel-node-sdk/commit/068027a7b58e3234b99c8b87fe7ef4610f33f941))

## 0.47.0 (2026-04-07)

Full Changelog: [v0.46.0...v0.47.0](https://github.com/kernel/kernel-node-sdk/compare/v0.46.0...v0.47.0)
Expand Down
28 changes: 28 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,34 @@ Methods:
- <code title="delete /credentials/{id_or_name}">client.credentials.<a href="./src/resources/credentials.ts">delete</a>(idOrName) -> void</code>
- <code title="get /credentials/{id_or_name}/totp-code">client.credentials.<a href="./src/resources/credentials.ts">totpCode</a>(idOrName) -> CredentialTotpCodeResponse</code>

# Projects

Types:

- <code><a href="./src/resources/projects/projects.ts">CreateProjectRequest</a></code>
- <code><a href="./src/resources/projects/projects.ts">Project</a></code>
- <code><a href="./src/resources/projects/projects.ts">UpdateProjectRequest</a></code>

Methods:

- <code title="post /projects">client.projects.<a href="./src/resources/projects/projects.ts">create</a>({ ...params }) -> Project</code>
- <code title="get /projects/{id}">client.projects.<a href="./src/resources/projects/projects.ts">retrieve</a>(id) -> Project</code>
- <code title="patch /projects/{id}">client.projects.<a href="./src/resources/projects/projects.ts">update</a>(id, { ...params }) -> Project</code>
- <code title="get /projects">client.projects.<a href="./src/resources/projects/projects.ts">list</a>({ ...params }) -> ProjectsOffsetPagination</code>
- <code title="delete /projects/{id}">client.projects.<a href="./src/resources/projects/projects.ts">delete</a>(id) -> void</code>

## Limits

Types:

- <code><a href="./src/resources/projects/limits.ts">ProjectLimits</a></code>
- <code><a href="./src/resources/projects/limits.ts">UpdateProjectLimitsRequest</a></code>

Methods:

- <code title="get /projects/{id}/limits">client.projects.limits.<a href="./src/resources/projects/limits.ts">retrieve</a>(id) -> ProjectLimits</code>
- <code title="patch /projects/{id}/limits">client.projects.limits.<a href="./src/resources/projects/limits.ts">update</a>(id, { ...params }) -> ProjectLimits</code>

# CredentialProviders

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.

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.47.0",
"version": "0.48.0",
"description": "The official TypeScript library for the Kernel API",
"author": "Kernel <>",
"types": "dist/index.d.ts",
Expand Down
26 changes: 26 additions & 0 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,16 @@ import {
Browsers,
Profile,
} from './resources/browsers/browsers';
import {
CreateProjectRequest,
Project,
ProjectCreateParams,
ProjectListParams,
ProjectUpdateParams,
Projects,
ProjectsOffsetPagination,
UpdateProjectRequest,
} from './resources/projects/projects';
import { type Fetch } from './internal/builtin-types';
import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
import { FinalRequestOptions, RequestOptions } from './internal/request-options';
Expand Down Expand Up @@ -925,6 +935,10 @@ export class Kernel {
* Create and manage credentials for authentication.
*/
credentials: API.Credentials = new API.Credentials(this);
/**
* Create and manage projects for resource isolation within an organization.
*/
projects: API.Projects = new API.Projects(this);
/**
* Configure external credential providers like 1Password.
*/
Expand All @@ -941,6 +955,7 @@ Kernel.Proxies = Proxies;
Kernel.Extensions = Extensions;
Kernel.BrowserPools = BrowserPools;
Kernel.Credentials = Credentials;
Kernel.Projects = Projects;
Kernel.CredentialProviders = CredentialProviders;

export declare namespace Kernel {
Expand Down Expand Up @@ -1057,6 +1072,17 @@ export declare namespace Kernel {
type CredentialListParams as CredentialListParams,
};

export {
Projects as Projects,
type CreateProjectRequest as CreateProjectRequest,
type Project as Project,
type UpdateProjectRequest as UpdateProjectRequest,
type ProjectsOffsetPagination as ProjectsOffsetPagination,
type ProjectCreateParams as ProjectCreateParams,
type ProjectUpdateParams as ProjectUpdateParams,
type ProjectListParams as ProjectListParams,
};

export {
CredentialProviders as CredentialProviders,
type CreateCredentialProviderRequest as CreateCredentialProviderRequest,
Expand Down
4 changes: 2 additions & 2 deletions src/internal/utils/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
*/
export const readEnv = (env: string): string | undefined => {
if (typeof (globalThis as any).process !== 'undefined') {
return (globalThis as any).process.env?.[env]?.trim() ?? undefined;
return (globalThis as any).process.env?.[env]?.trim() || undefined;
}
if (typeof (globalThis as any).Deno !== 'undefined') {
return (globalThis as any).Deno.env?.get?.(env)?.trim();
return (globalThis as any).Deno.env?.get?.(env)?.trim() || undefined;
}
return undefined;
};
5 changes: 5 additions & 0 deletions src/resources/browser-pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,11 @@ export interface BrowserPoolAcquireResponse {
*/
webdriver_ws_url: string;

/**
* Metro-API HTTP base URL for this browser session.
*/
base_url?: string;

/**
* Remote URL for live viewing the browser session. Only available for non-headless
* browsers.
Expand Down
20 changes: 20 additions & 0 deletions src/resources/browsers/browsers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,11 @@ export interface BrowserCreateResponse {
*/
webdriver_ws_url: string;

/**
* Metro-API HTTP base URL for this browser session.
*/
base_url?: string;

/**
* Remote URL for live viewing the browser session. Only available for non-headless
* browsers.
Expand Down Expand Up @@ -419,6 +424,11 @@ export interface BrowserRetrieveResponse {
*/
webdriver_ws_url: string;

/**
* Metro-API HTTP base URL for this browser session.
*/
base_url?: string;

/**
* Remote URL for live viewing the browser session. Only available for non-headless
* browsers.
Expand Down Expand Up @@ -520,6 +530,11 @@ export interface BrowserUpdateResponse {
*/
webdriver_ws_url: string;

/**
* Metro-API HTTP base URL for this browser session.
*/
base_url?: string;

/**
* Remote URL for live viewing the browser session. Only available for non-headless
* browsers.
Expand Down Expand Up @@ -621,6 +636,11 @@ export interface BrowserListResponse {
*/
webdriver_ws_url: string;

/**
* Metro-API HTTP base URL for this browser session.
*/
base_url?: string;

/**
* Remote URL for live viewing the browser session. Only available for non-headless
* browsers.
Expand Down
10 changes: 10 additions & 0 deletions src/resources/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,16 @@ export {
type InvocationListResponsesOffsetPagination,
} from './invocations';
export { Profiles, type ProfileCreateParams, type ProfileListParams } from './profiles';
export {
Projects,
type CreateProjectRequest,
type Project,
type UpdateProjectRequest,
type ProjectCreateParams,
type ProjectUpdateParams,
type ProjectListParams,
type ProjectsOffsetPagination,
} from './projects/projects';
export {
Proxies,
type ProxyCreateResponse,
Expand Down
5 changes: 5 additions & 0 deletions src/resources/invocations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,11 @@ export namespace InvocationListBrowsersResponse {
*/
webdriver_ws_url: string;

/**
* Metro-API HTTP base URL for this browser session.
*/
base_url?: string;

/**
* Remote URL for live viewing the browser session. Only available for non-headless
* browsers.
Expand Down
3 changes: 3 additions & 0 deletions src/resources/projects.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

export * from './projects/index';
18 changes: 18 additions & 0 deletions src/resources/projects/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

export {
Limits,
type ProjectLimits,
type UpdateProjectLimitsRequest,
type LimitUpdateParams,
} from './limits';
export {
Projects,
type CreateProjectRequest,
type Project,
type UpdateProjectRequest,
type ProjectCreateParams,
type ProjectUpdateParams,
type ProjectListParams,
type ProjectsOffsetPagination,
} from './projects';
128 changes: 128 additions & 0 deletions src/resources/projects/limits.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import { APIResource } from '../../core/resource';
import { APIPromise } from '../../core/api-promise';
import { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';

/**
* Create and manage projects for resource isolation within an organization.
*/
export class Limits extends APIResource {
/**
* Get the resource limit overrides for a project. Null values mean no
* project-level cap (org limit applies).
*
* @example
* ```ts
* const projectLimits = await client.projects.limits.retrieve(
* 'id',
* );
* ```
*/
retrieve(id: string, options?: RequestOptions): APIPromise<ProjectLimits> {
return this._client.get(path`/projects/${id}/limits`, options);
}

/**
* Update resource limit overrides for a project. Only fields present in the
* request are modified. Set a field to 0 to remove that limit cap; omit a field to
* leave it unchanged.
*
* @example
* ```ts
* const projectLimits = await client.projects.limits.update(
* 'id',
* );
* ```
*/
update(id: string, body: LimitUpdateParams, options?: RequestOptions): APIPromise<ProjectLimits> {
return this._client.patch(path`/projects/${id}/limits`, { body, ...options });
}
}

export interface ProjectLimits {
/**
* Maximum concurrent app invocations for this project. Null means no project-level
* cap.
*/
max_concurrent_invocations?: number | null;

/**
* Maximum concurrent browser sessions for this project. Null means no
* project-level cap.
*/
max_concurrent_sessions?: number | null;

/**
* Maximum persistent browser sessions for this project. Null means no
* project-level cap.
*/
max_persistent_sessions?: number | null;

/**
* Maximum pooled sessions capacity for this project. Null means no project-level
* cap.
*/
max_pooled_sessions?: number | null;
}

export interface UpdateProjectLimitsRequest {
/**
* Maximum concurrent app invocations for this project. Set to 0 to remove the cap;
* omit to leave unchanged.
*/
max_concurrent_invocations?: number | null;

/**
* Maximum concurrent browser sessions for this project. Set to 0 to remove the
* cap; omit to leave unchanged.
*/
max_concurrent_sessions?: number | null;

/**
* Maximum persistent browser sessions for this project. Set to 0 to remove the
* cap; omit to leave unchanged.
*/
max_persistent_sessions?: number | null;

/**
* Maximum pooled sessions capacity for this project. Set to 0 to remove the cap;
* omit to leave unchanged.
*/
max_pooled_sessions?: number | null;
}

export interface LimitUpdateParams {
/**
* Maximum concurrent app invocations for this project. Set to 0 to remove the cap;
* omit to leave unchanged.
*/
max_concurrent_invocations?: number | null;

/**
* Maximum concurrent browser sessions for this project. Set to 0 to remove the
* cap; omit to leave unchanged.
*/
max_concurrent_sessions?: number | null;

/**
* Maximum persistent browser sessions for this project. Set to 0 to remove the
* cap; omit to leave unchanged.
*/
max_persistent_sessions?: number | null;

/**
* Maximum pooled sessions capacity for this project. Set to 0 to remove the cap;
* omit to leave unchanged.
*/
max_pooled_sessions?: number | null;
}

export declare namespace Limits {
export {
type ProjectLimits as ProjectLimits,
type UpdateProjectLimitsRequest as UpdateProjectLimitsRequest,
type LimitUpdateParams as LimitUpdateParams,
};
}
Loading
Loading