From 3d1de59c268cd3029370b762af25a7032a7e2699 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 7 Jan 2026 18:05:28 +0000 Subject: [PATCH 01/15] chore: sync repo --- .github/workflows/publish-npm.yml | 2 +- .github/workflows/release-doctor.yml | 2 +- .release-please-manifest.json | 2 +- CHANGELOG.md | 16 ---------------- package.json | 2 +- src/version.ts | 2 +- 6 files changed, 5 insertions(+), 21 deletions(-) diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 9032e71..45c2cfd 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -1,6 +1,6 @@ # This workflow is triggered when a GitHub release is created. # It can also be run manually to re-publish to NPM in case it failed for some reason. -# You can run this workflow by navigating to https://www.github.com/kernel/kernel-node-sdk/actions/workflows/publish-npm.yml +# You can run this workflow by navigating to https://www.github.com/onkernel/kernel-node-sdk/actions/workflows/publish-npm.yml name: Publish NPM on: workflow_dispatch: diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index 8e58775..9e9b38d 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -9,7 +9,7 @@ jobs: release_doctor: name: release doctor runs-on: ubuntu-latest - if: github.repository == 'kernel/kernel-node-sdk' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') + if: github.repository == 'onkernel/kernel-node-sdk' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - uses: actions/checkout@v4 diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 945fbaf..fc5553b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.25.0" + ".": "0.24.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 3981d46..10efd02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,5 @@ # Changelog -## 0.25.0 (2026-01-07) - -Full Changelog: [v0.24.0...v0.25.0](https://github.com/onkernel/kernel-node-sdk/compare/v0.24.0...v0.25.0) - -### Features - -* **api:** add health check endpoint for proxies ([999dfe5](https://github.com/onkernel/kernel-node-sdk/commit/999dfe58dbdfae072207e03d83efea58eb914a32)) -* **auth:** add auto_login credential flow ([3f4eb01](https://github.com/onkernel/kernel-node-sdk/commit/3f4eb01bb73f679828e195a74f41214d69c01453)) -* Enhance AuthAgentInvocation with step and last activity tracking ([8380eb6](https://github.com/onkernel/kernel-node-sdk/commit/8380eb6cef2c8229bee4e263bcd0637f9fcb1480)) - - -### Chores - -* break long lines in snippets into multiline ([c546f46](https://github.com/onkernel/kernel-node-sdk/commit/c546f46485ea1e853347db59c4abc5d8c9389b6c)) -* **internal:** codegen related update ([00a9097](https://github.com/onkernel/kernel-node-sdk/commit/00a9097ee42022b917f90fa6dd33938a3f1a9866)) - ## 0.24.0 (2025-12-17) Full Changelog: [v0.23.0...v0.24.0](https://github.com/onkernel/kernel-node-sdk/compare/v0.23.0...v0.24.0) diff --git a/package.json b/package.json index 7443df6..ce072cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.25.0", + "version": "0.24.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 4931d4f..7434729 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.25.0'; // x-release-please-version +export const VERSION = '0.24.0'; // x-release-please-version From d18f7decf64aa26e70a1c018f5b434af502bd82b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 7 Jan 2026 18:05:48 +0000 Subject: [PATCH 02/15] feat(api): update production repos --- .github/workflows/publish-npm.yml | 2 +- .github/workflows/release-doctor.yml | 2 +- .stats.yml | 2 +- CONTRIBUTING.md | 6 +++--- README.md | 2 +- package.json | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 45c2cfd..9032e71 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -1,6 +1,6 @@ # This workflow is triggered when a GitHub release is created. # It can also be run manually to re-publish to NPM in case it failed for some reason. -# You can run this workflow by navigating to https://www.github.com/onkernel/kernel-node-sdk/actions/workflows/publish-npm.yml +# You can run this workflow by navigating to https://www.github.com/kernel/kernel-node-sdk/actions/workflows/publish-npm.yml name: Publish NPM on: workflow_dispatch: diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index 9e9b38d..8e58775 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -9,7 +9,7 @@ jobs: release_doctor: name: release doctor runs-on: ubuntu-latest - if: github.repository == 'onkernel/kernel-node-sdk' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') + if: github.repository == 'kernel/kernel-node-sdk' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - uses: actions/checkout@v4 diff --git a/.stats.yml b/.stats.yml index 434275e..9ab4346 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 89 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-8d66dbedea5b240936b338809f272568ca84a452fc13dbda835479f2ec068b41.yml openapi_spec_hash: 7c499bfce2e996f1fff5e7791cea390e -config_hash: fcc2db3ed48ab4e8d1b588d31d394a23 +config_hash: 2ee8c7057fa9b05cd0dabd23247c40ec diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 679eb77..30dc126 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,14 +42,14 @@ If you’d like to use the repository from source, you can either install from g To install via git: ```sh -$ npm install git+ssh://git@github.com:onkernel/kernel-node-sdk.git +$ npm install git+ssh://git@github.com:kernel/kernel-node-sdk.git ``` Alternatively, to link a local copy of the repo: ```sh # Clone -$ git clone https://www.github.com/onkernel/kernel-node-sdk +$ git clone https://www.github.com/kernel/kernel-node-sdk $ cd kernel-node-sdk # With yarn @@ -99,7 +99,7 @@ the changes aren't made through the automated pipeline, you may want to make rel ### Publish with a GitHub workflow -You can release to package managers by using [the `Publish NPM` GitHub action](https://www.github.com/onkernel/kernel-node-sdk/actions/workflows/publish-npm.yml). This requires a setup organization or repository secret to be set up. +You can release to package managers by using [the `Publish NPM` GitHub action](https://www.github.com/kernel/kernel-node-sdk/actions/workflows/publish-npm.yml). This requires a setup organization or repository secret to be set up. ### Publish manually diff --git a/README.md b/README.md index 586ba14..b5ae492 100644 --- a/README.md +++ b/README.md @@ -400,7 +400,7 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience. -We are keen for your feedback; please open an [issue](https://www.github.com/onkernel/kernel-node-sdk/issues) with questions, bugs, or suggestions. +We are keen for your feedback; please open an [issue](https://www.github.com/kernel/kernel-node-sdk/issues) with questions, bugs, or suggestions. ## Requirements diff --git a/package.json b/package.json index ce072cc..a270b0a 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "types": "dist/index.d.ts", "main": "dist/index.js", "type": "commonjs", - "repository": "github:onkernel/kernel-node-sdk", + "repository": "github:kernel/kernel-node-sdk", "license": "Apache-2.0", "packageManager": "yarn@1.22.22", "files": [ From 3e2dd3f657592d6a2e224f0c0238d58514a548f6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 20:40:45 +0000 Subject: [PATCH 03/15] feat: add MFA options to agent authentication workflow --- .stats.yml | 6 ++-- CONTRIBUTING.md | 4 +-- README.md | 26 ++++++++-------- eslint.config.mjs | 2 +- jest.config.ts | 4 +-- package.json | 2 +- scripts/build | 6 ++-- src/client.ts | 6 ++-- src/resources/agents/auth/auth.ts | 31 +++++++++++++++++++ src/resources/agents/auth/invocations.ts | 12 ++++++- tests/api-resources/agents/auth/auth.test.ts | 2 +- .../agents/auth/invocations.test.ts | 2 +- tests/api-resources/apps.test.ts | 2 +- tests/api-resources/browser-pools.test.ts | 2 +- tests/api-resources/browsers/browsers.test.ts | 2 +- tests/api-resources/browsers/computer.test.ts | 2 +- tests/api-resources/browsers/fs/fs.test.ts | 2 +- tests/api-resources/browsers/fs/watch.test.ts | 2 +- tests/api-resources/browsers/logs.test.ts | 2 +- .../api-resources/browsers/playwright.test.ts | 2 +- tests/api-resources/browsers/process.test.ts | 2 +- tests/api-resources/browsers/replays.test.ts | 2 +- tests/api-resources/credentials.test.ts | 2 +- tests/api-resources/deployments.test.ts | 2 +- tests/api-resources/extensions.test.ts | 2 +- tests/api-resources/invocations.test.ts | 2 +- tests/api-resources/profiles.test.ts | 2 +- tests/api-resources/proxies.test.ts | 2 +- tests/base64.test.ts | 2 +- tests/buildHeaders.test.ts | 2 +- tests/form.test.ts | 4 +-- tests/index.test.ts | 12 +++---- tests/internal/decoders/line.test.ts | 2 +- tests/path.test.ts | 2 +- tests/streaming.test.ts | 4 +-- tests/stringifyQuery.test.ts | 2 +- tests/uploads.test.ts | 6 ++-- tsconfig.build.json | 4 +-- tsconfig.json | 4 +-- 39 files changed, 110 insertions(+), 69 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9ab4346..ce759c0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 89 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-8d66dbedea5b240936b338809f272568ca84a452fc13dbda835479f2ec068b41.yml -openapi_spec_hash: 7c499bfce2e996f1fff5e7791cea390e -config_hash: 2ee8c7057fa9b05cd0dabd23247c40ec +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-8e4a29d23d2882fcb0864606091790fd58bffa4f5d5c8d081052b72ad47b215b.yml +openapi_spec_hash: fc82d930dad739ac01e3c2bddba7bf61 +config_hash: 3a5e36dfb245210cfd978f679b3641d2 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30dc126..6434ec2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,12 +55,12 @@ $ cd kernel-node-sdk # With yarn $ yarn link $ cd ../my-package -$ yarn link @onkernel/sdk +$ yarn link @kernel/sdk # With pnpm $ pnpm link --global $ cd ../my-package -$ pnpm link -—global @onkernel/sdk +$ pnpm link -—global @kernel/sdk ``` ## Running tests diff --git a/README.md b/README.md index b5ae492..17efd10 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ # Kernel TypeScript API Library -[![NPM version]()](https://npmjs.org/package/@onkernel/sdk) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@onkernel/sdk) +[![NPM version]()](https://npmjs.org/package/@kernel/sdk) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@kernel/sdk) This library provides convenient access to the Kernel REST API from server-side TypeScript or JavaScript. -The REST API documentation can be found on [docs.onkernel.com](https://docs.onkernel.com). The full API of this library can be found in [api.md](api.md). +The REST API documentation can be found on [docs.kernel.com](https://docs.kernel.com). The full API of this library can be found in [api.md](api.md). It is generated with [Stainless](https://www.stainless.com/). ## Installation ```sh -npm install @onkernel/sdk +npm install @kernel/sdk ``` ## Usage @@ -20,7 +20,7 @@ The full API of this library can be found in [api.md](api.md). ```js -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted @@ -38,7 +38,7 @@ This library includes TypeScript definitions for all request params and response ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted @@ -62,7 +62,7 @@ Request parameters that correspond to file uploads can be passed in many differe ```ts import fs from 'fs'; -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel(); @@ -227,7 +227,7 @@ The log level can be configured in two ways: 2. Using the `logLevel` client option (overrides the environment variable if set) ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ logLevel: 'debug', // Show all log messages @@ -255,7 +255,7 @@ When providing a custom logger, the `logLevel` option still controls which messa below the configured level will not be sent to your logger. ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; import pino from 'pino'; const logger = pino(); @@ -324,7 +324,7 @@ globalThis.fetch = fetch; Or pass it to the client: ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; import fetch from 'my-fetch'; const client = new Kernel({ fetch }); @@ -335,7 +335,7 @@ const client = new Kernel({ fetch }); If you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.) ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ fetchOptions: { @@ -352,7 +352,7 @@ options to requests: **Node** [[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)] ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; import * as undici from 'undici'; const proxyAgent = new undici.ProxyAgent('http://localhost:8888'); @@ -366,7 +366,7 @@ const client = new Kernel({ **Bun** [[docs](https://bun.sh/guides/http/proxy)] ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ fetchOptions: { @@ -378,7 +378,7 @@ const client = new Kernel({ **Deno** [[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)] ```ts -import Kernel from 'npm:@onkernel/sdk'; +import Kernel from 'npm:@kernel/sdk'; const httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } }); const client = new Kernel({ diff --git a/eslint.config.mjs b/eslint.config.mjs index 341aac5..b9c449d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -25,7 +25,7 @@ export default tseslint.config( { patterns: [ { - regex: '^@onkernel/sdk(/.*)?', + regex: '^@kernel/sdk(/.*)?', message: 'Use a relative import, not a package import.', }, ], diff --git a/jest.config.ts b/jest.config.ts index f21115c..091bd92 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -7,8 +7,8 @@ const config: JestConfigWithTsJest = { '^.+\\.(t|j)sx?$': ['@swc/jest', { sourceMaps: 'inline' }], }, moduleNameMapper: { - '^@onkernel/sdk$': '/src/index.ts', - '^@onkernel/sdk/(.*)$': '/src/$1', + '^@kernel/sdk$': '/src/index.ts', + '^@kernel/sdk/(.*)$': '/src/$1', }, modulePathIgnorePatterns: [ '/ecosystem-tests/', diff --git a/package.json b/package.json index a270b0a..3628a29 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@onkernel/sdk", + "name": "@kernel/sdk", "version": "0.24.0", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", diff --git a/scripts/build b/scripts/build index a008cb0..c92df21 100755 --- a/scripts/build +++ b/scripts/build @@ -8,7 +8,7 @@ node scripts/utils/check-version.cjs # Build into dist and will publish the package from there, # so that src/resources/foo.ts becomes /resources/foo.js -# This way importing from `"@onkernel/sdk/resources/foo"` works +# This way importing from `"@kernel/sdk/resources/foo"` works # even with `"moduleResolution": "node"` rm -rf dist; mkdir dist @@ -42,8 +42,8 @@ node scripts/utils/postprocess-files.cjs # make sure that nothing crashes when we require the output CJS or # import the output ESM -(cd dist && node -e 'require("@onkernel/sdk")') -(cd dist && node -e 'import("@onkernel/sdk")' --input-type=module) +(cd dist && node -e 'require("@kernel/sdk")') +(cd dist && node -e 'import("@kernel/sdk")' --input-type=module) if [ -e ./scripts/build-deno ] then diff --git a/src/client.ts b/src/client.ts index 52ecc53..ac3e3ce 100644 --- a/src/client.ts +++ b/src/client.ts @@ -112,7 +112,7 @@ import { import { isEmptyObj } from './internal/utils/values'; const environments = { - production: 'https://api.onkernel.com/', + production: 'https://api.kernel.com/', development: 'https://localhost:3001/', }; type Environment = keyof typeof environments; @@ -127,7 +127,7 @@ export interface ClientOptions { * Specifies the environment to use for the API. * * Each environment maps to a different base URL: - * - `production` corresponds to `https://api.onkernel.com/` + * - `production` corresponds to `https://api.kernel.com/` * - `development` corresponds to `https://localhost:3001/` */ environment?: Environment | undefined; @@ -224,7 +224,7 @@ export class Kernel { * * @param {string | undefined} [opts.apiKey=process.env['KERNEL_API_KEY'] ?? undefined] * @param {Environment} [opts.environment=production] - Specifies the environment URL to use for the API. - * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.onkernel.com/] - Override the default base URL for the API. + * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.kernel.com/] - Override the default base URL for the API. * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls. * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. diff --git a/src/resources/agents/auth/auth.ts b/src/resources/agents/auth/auth.ts index 6e9372e..a02a64f 100644 --- a/src/resources/agents/auth/auth.ts +++ b/src/resources/agents/auth/auth.ts @@ -150,6 +150,12 @@ export interface AgentAuthInvocationResponse { */ live_view_url?: string | null; + /** + * MFA method options to choose from (present when step=awaiting_input and MFA + * selection is required) + */ + mfa_options?: Array | null; + /** * Fields currently awaiting input (present when step=awaiting_input) */ @@ -167,6 +173,31 @@ export interface AgentAuthInvocationResponse { } export namespace AgentAuthInvocationResponse { + /** + * An MFA method option for verification + */ + export interface MfaOption { + /** + * The visible option text + */ + label: string; + + /** + * The MFA delivery method type + */ + type: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'security_key'; + + /** + * Additional instructions from the site + */ + description?: string | null; + + /** + * The masked destination (phone/email) if shown + */ + target?: string | null; + } + /** * An SSO button for signing in with an external identity provider */ diff --git a/src/resources/agents/auth/invocations.ts b/src/resources/agents/auth/invocations.ts index 94cefbd..3a25011 100644 --- a/src/resources/agents/auth/invocations.ts +++ b/src/resources/agents/auth/invocations.ts @@ -128,7 +128,10 @@ export interface InvocationExchangeParams { code: string; } -export type InvocationSubmitParams = InvocationSubmitParams.Variant0 | InvocationSubmitParams.Variant1; +export type InvocationSubmitParams = + | InvocationSubmitParams.Variant0 + | InvocationSubmitParams.Variant1 + | InvocationSubmitParams.Variant2; export declare namespace InvocationSubmitParams { export interface Variant0 { @@ -144,6 +147,13 @@ export declare namespace InvocationSubmitParams { */ sso_button: string; } + + export interface Variant2 { + /** + * The MFA delivery method type + */ + selected_mfa_type: 'sms' | 'call' | 'email' | 'totp' | 'push' | 'security_key'; + } } export declare namespace Invocations { diff --git a/tests/api-resources/agents/auth/auth.test.ts b/tests/api-resources/agents/auth/auth.test.ts index 1f8a923..ea592ca 100644 --- a/tests/api-resources/agents/auth/auth.test.ts +++ b/tests/api-resources/agents/auth/auth.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/agents/auth/invocations.test.ts b/tests/api-resources/agents/auth/invocations.test.ts index b30496c..de72d35 100644 --- a/tests/api-resources/agents/auth/invocations.test.ts +++ b/tests/api-resources/agents/auth/invocations.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/apps.test.ts b/tests/api-resources/apps.test.ts index d1a35f2..68cc966 100644 --- a/tests/api-resources/apps.test.ts +++ b/tests/api-resources/apps.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browser-pools.test.ts b/tests/api-resources/browser-pools.test.ts index 97737bb..148b439 100644 --- a/tests/api-resources/browser-pools.test.ts +++ b/tests/api-resources/browser-pools.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 5b315b4..a9bc825 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/computer.test.ts b/tests/api-resources/browsers/computer.test.ts index b95f0fa..acdc93d 100644 --- a/tests/api-resources/browsers/computer.test.ts +++ b/tests/api-resources/browsers/computer.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/fs/fs.test.ts b/tests/api-resources/browsers/fs/fs.test.ts index 92a0c9c..ebb6d48 100644 --- a/tests/api-resources/browsers/fs/fs.test.ts +++ b/tests/api-resources/browsers/fs/fs.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/fs/watch.test.ts b/tests/api-resources/browsers/fs/watch.test.ts index 47ddfb8..0e4e3a6 100644 --- a/tests/api-resources/browsers/fs/watch.test.ts +++ b/tests/api-resources/browsers/fs/watch.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/logs.test.ts b/tests/api-resources/browsers/logs.test.ts index 0fa405e..3fb0227 100644 --- a/tests/api-resources/browsers/logs.test.ts +++ b/tests/api-resources/browsers/logs.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/playwright.test.ts b/tests/api-resources/browsers/playwright.test.ts index 5c45947..b2a6fe5 100644 --- a/tests/api-resources/browsers/playwright.test.ts +++ b/tests/api-resources/browsers/playwright.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/process.test.ts b/tests/api-resources/browsers/process.test.ts index 138070a..6418355 100644 --- a/tests/api-resources/browsers/process.test.ts +++ b/tests/api-resources/browsers/process.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/replays.test.ts b/tests/api-resources/browsers/replays.test.ts index d0ee498..3484b8c 100644 --- a/tests/api-resources/browsers/replays.test.ts +++ b/tests/api-resources/browsers/replays.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/credentials.test.ts b/tests/api-resources/credentials.test.ts index d825b4e..f0e11b6 100644 --- a/tests/api-resources/credentials.test.ts +++ b/tests/api-resources/credentials.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/deployments.test.ts b/tests/api-resources/deployments.test.ts index b3f0c20..bbc3793 100644 --- a/tests/api-resources/deployments.test.ts +++ b/tests/api-resources/deployments.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/extensions.test.ts b/tests/api-resources/extensions.test.ts index 515415f..eaeb587 100644 --- a/tests/api-resources/extensions.test.ts +++ b/tests/api-resources/extensions.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/invocations.test.ts b/tests/api-resources/invocations.test.ts index b8c8024..d8f4e5d 100644 --- a/tests/api-resources/invocations.test.ts +++ b/tests/api-resources/invocations.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/profiles.test.ts b/tests/api-resources/profiles.test.ts index 9fe686a..51a2925 100644 --- a/tests/api-resources/profiles.test.ts +++ b/tests/api-resources/profiles.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/proxies.test.ts b/tests/api-resources/proxies.test.ts index 1086c4f..afe5fce 100644 --- a/tests/api-resources/proxies.test.ts +++ b/tests/api-resources/proxies.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/base64.test.ts b/tests/base64.test.ts index 2e2538e..9b72246 100644 --- a/tests/base64.test.ts +++ b/tests/base64.test.ts @@ -1,4 +1,4 @@ -import { fromBase64, toBase64 } from '@onkernel/sdk/internal/utils/base64'; +import { fromBase64, toBase64 } from '@kernel/sdk/internal/utils/base64'; describe.each(['Buffer', 'atob'])('with %s', (mode) => { let originalBuffer: BufferConstructor; diff --git a/tests/buildHeaders.test.ts b/tests/buildHeaders.test.ts index 039a800..ec9447a 100644 --- a/tests/buildHeaders.test.ts +++ b/tests/buildHeaders.test.ts @@ -1,5 +1,5 @@ import { inspect } from 'node:util'; -import { buildHeaders, type HeadersLike, type NullableHeaders } from '@onkernel/sdk/internal/headers'; +import { buildHeaders, type HeadersLike, type NullableHeaders } from '@kernel/sdk/internal/headers'; function inspectNullableHeaders(headers: NullableHeaders) { return `NullableHeaders {${[ diff --git a/tests/form.test.ts b/tests/form.test.ts index 8abe689..0c30749 100644 --- a/tests/form.test.ts +++ b/tests/form.test.ts @@ -1,5 +1,5 @@ -import { multipartFormRequestOptions, createForm } from '@onkernel/sdk/internal/uploads'; -import { toFile } from '@onkernel/sdk/core/uploads'; +import { multipartFormRequestOptions, createForm } from '@kernel/sdk/internal/uploads'; +import { toFile } from '@kernel/sdk/core/uploads'; describe('form data validation', () => { test('valid values do not error', async () => { diff --git a/tests/index.test.ts b/tests/index.test.ts index 90d04c4..39fcf67 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,10 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { APIPromise } from '@onkernel/sdk/core/api-promise'; +import { APIPromise } from '@kernel/sdk/core/api-promise'; import util from 'node:util'; -import Kernel from '@onkernel/sdk'; -import { APIUserAbortError } from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; +import { APIUserAbortError } from '@kernel/sdk'; const defaultFetch = fetch; describe('instantiate client', () => { @@ -322,13 +322,13 @@ describe('instantiate client', () => { test('empty env variable', () => { process.env['KERNEL_BASE_URL'] = ''; // empty const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); + expect(client.baseURL).toEqual('https://api.kernel.com/'); }); test('blank env variable', () => { process.env['KERNEL_BASE_URL'] = ' '; // blank const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); + expect(client.baseURL).toEqual('https://api.kernel.com/'); }); test('env variable with environment', () => { @@ -345,7 +345,7 @@ describe('instantiate client', () => { baseURL: null, environment: 'production', }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); + expect(client.baseURL).toEqual('https://api.kernel.com/'); }); test('in request options', () => { diff --git a/tests/internal/decoders/line.test.ts b/tests/internal/decoders/line.test.ts index 1146678..9f83564 100644 --- a/tests/internal/decoders/line.test.ts +++ b/tests/internal/decoders/line.test.ts @@ -1,4 +1,4 @@ -import { findDoubleNewlineIndex, LineDecoder } from '@onkernel/sdk/internal/decoders/line'; +import { findDoubleNewlineIndex, LineDecoder } from '@kernel/sdk/internal/decoders/line'; function decodeChunks(chunks: string[], { flush }: { flush: boolean } = { flush: false }): string[] { const decoder = new LineDecoder(); diff --git a/tests/path.test.ts b/tests/path.test.ts index b209e96..247f0c8 100644 --- a/tests/path.test.ts +++ b/tests/path.test.ts @@ -1,4 +1,4 @@ -import { createPathTagFunction, encodeURIPath } from '@onkernel/sdk/internal/utils/path'; +import { createPathTagFunction, encodeURIPath } from '@kernel/sdk/internal/utils/path'; import { inspect } from 'node:util'; import { runInNewContext } from 'node:vm'; diff --git a/tests/streaming.test.ts b/tests/streaming.test.ts index 0124e21..ac5aa48 100644 --- a/tests/streaming.test.ts +++ b/tests/streaming.test.ts @@ -1,6 +1,6 @@ import assert from 'assert'; -import { _iterSSEMessages } from '@onkernel/sdk/core/streaming'; -import { ReadableStreamFrom } from '@onkernel/sdk/internal/shims'; +import { _iterSSEMessages } from '@kernel/sdk/core/streaming'; +import { ReadableStreamFrom } from '@kernel/sdk/internal/shims'; describe('streaming decoding', () => { test('basic', async () => { diff --git a/tests/stringifyQuery.test.ts b/tests/stringifyQuery.test.ts index 1170f01..05e5cc3 100644 --- a/tests/stringifyQuery.test.ts +++ b/tests/stringifyQuery.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { Kernel } from '@onkernel/sdk'; +import { Kernel } from '@kernel/sdk'; const { stringifyQuery } = Kernel.prototype as any; diff --git a/tests/uploads.test.ts b/tests/uploads.test.ts index ba84b0c..df09f70 100644 --- a/tests/uploads.test.ts +++ b/tests/uploads.test.ts @@ -1,6 +1,6 @@ import fs from 'fs'; -import type { ResponseLike } from '@onkernel/sdk/internal/to-file'; -import { toFile } from '@onkernel/sdk/core/uploads'; +import type { ResponseLike } from '@kernel/sdk/internal/to-file'; +import { toFile } from '@kernel/sdk/core/uploads'; import { File } from 'node:buffer'; class MyClass { @@ -97,7 +97,7 @@ describe('missing File error message', () => { }); test('is thrown', async () => { - const uploads = await import('@onkernel/sdk/core/uploads'); + const uploads = await import('@kernel/sdk/core/uploads'); await expect( uploads.toFile(mockResponse({ url: 'https://example.com/my/audio.mp3' })), ).rejects.toMatchInlineSnapshot( diff --git a/tsconfig.build.json b/tsconfig.build.json index 762269d..f161b5d 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -5,8 +5,8 @@ "compilerOptions": { "rootDir": "./dist/src", "paths": { - "@onkernel/sdk/*": ["./dist/src/*"], - "@onkernel/sdk": ["./dist/src/index.ts"] + "@kernel/sdk/*": ["./dist/src/*"], + "@kernel/sdk": ["./dist/src/index.ts"] }, "noEmit": false, "declaration": true, diff --git a/tsconfig.json b/tsconfig.json index 73ce218..57fc9d6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,8 +8,8 @@ "moduleResolution": "node", "esModuleInterop": true, "paths": { - "@onkernel/sdk/*": ["./src/*"], - "@onkernel/sdk": ["./src/index.ts"] + "@kernel/sdk/*": ["./src/*"], + "@kernel/sdk": ["./src/index.ts"] }, "noEmit": true, From b9715f89fbd10b6cf48e0d68168750c807f77004 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 15:19:44 +0000 Subject: [PATCH 04/15] feat(api): manual updates Updated TypeScript package name and API URL to correct values. --- .stats.yml | 2 +- CONTRIBUTING.md | 4 ++-- README.md | 24 +++++++++---------- eslint.config.mjs | 2 +- jest.config.ts | 4 ++-- package.json | 2 +- scripts/build | 6 ++--- src/client.ts | 6 ++--- tests/api-resources/agents/auth/auth.test.ts | 2 +- .../agents/auth/invocations.test.ts | 2 +- tests/api-resources/apps.test.ts | 2 +- tests/api-resources/browser-pools.test.ts | 2 +- tests/api-resources/browsers/browsers.test.ts | 2 +- tests/api-resources/browsers/computer.test.ts | 2 +- tests/api-resources/browsers/fs/fs.test.ts | 2 +- tests/api-resources/browsers/fs/watch.test.ts | 2 +- tests/api-resources/browsers/logs.test.ts | 2 +- .../api-resources/browsers/playwright.test.ts | 2 +- tests/api-resources/browsers/process.test.ts | 2 +- tests/api-resources/browsers/replays.test.ts | 2 +- tests/api-resources/credentials.test.ts | 2 +- tests/api-resources/deployments.test.ts | 2 +- tests/api-resources/extensions.test.ts | 2 +- tests/api-resources/invocations.test.ts | 2 +- tests/api-resources/profiles.test.ts | 2 +- tests/api-resources/proxies.test.ts | 2 +- tests/base64.test.ts | 2 +- tests/buildHeaders.test.ts | 2 +- tests/form.test.ts | 4 ++-- tests/index.test.ts | 12 +++++----- tests/internal/decoders/line.test.ts | 2 +- tests/path.test.ts | 2 +- tests/streaming.test.ts | 4 ++-- tests/stringifyQuery.test.ts | 2 +- tests/uploads.test.ts | 6 ++--- tsconfig.build.json | 4 ++-- tsconfig.json | 4 ++-- 37 files changed, 65 insertions(+), 65 deletions(-) diff --git a/.stats.yml b/.stats.yml index ce759c0..8bd6c68 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 89 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-8e4a29d23d2882fcb0864606091790fd58bffa4f5d5c8d081052b72ad47b215b.yml openapi_spec_hash: fc82d930dad739ac01e3c2bddba7bf61 -config_hash: 3a5e36dfb245210cfd978f679b3641d2 +config_hash: d0585c44724cd7deecea60a5ffae69df diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6434ec2..30dc126 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,12 +55,12 @@ $ cd kernel-node-sdk # With yarn $ yarn link $ cd ../my-package -$ yarn link @kernel/sdk +$ yarn link @onkernel/sdk # With pnpm $ pnpm link --global $ cd ../my-package -$ pnpm link -—global @kernel/sdk +$ pnpm link -—global @onkernel/sdk ``` ## Running tests diff --git a/README.md b/README.md index 17efd10..21f3524 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Kernel TypeScript API Library -[![NPM version]()](https://npmjs.org/package/@kernel/sdk) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@kernel/sdk) +[![NPM version]()](https://npmjs.org/package/@onkernel/sdk) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@onkernel/sdk) This library provides convenient access to the Kernel REST API from server-side TypeScript or JavaScript. @@ -11,7 +11,7 @@ It is generated with [Stainless](https://www.stainless.com/). ## Installation ```sh -npm install @kernel/sdk +npm install @onkernel/sdk ``` ## Usage @@ -20,7 +20,7 @@ The full API of this library can be found in [api.md](api.md). ```js -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted @@ -38,7 +38,7 @@ This library includes TypeScript definitions for all request params and response ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted @@ -62,7 +62,7 @@ Request parameters that correspond to file uploads can be passed in many differe ```ts import fs from 'fs'; -import Kernel, { toFile } from '@kernel/sdk'; +import Kernel, { toFile } from '@onkernel/sdk'; const client = new Kernel(); @@ -227,7 +227,7 @@ The log level can be configured in two ways: 2. Using the `logLevel` client option (overrides the environment variable if set) ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ logLevel: 'debug', // Show all log messages @@ -255,7 +255,7 @@ When providing a custom logger, the `logLevel` option still controls which messa below the configured level will not be sent to your logger. ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; import pino from 'pino'; const logger = pino(); @@ -324,7 +324,7 @@ globalThis.fetch = fetch; Or pass it to the client: ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; import fetch from 'my-fetch'; const client = new Kernel({ fetch }); @@ -335,7 +335,7 @@ const client = new Kernel({ fetch }); If you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.) ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ fetchOptions: { @@ -352,7 +352,7 @@ options to requests: **Node** [[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)] ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; import * as undici from 'undici'; const proxyAgent = new undici.ProxyAgent('http://localhost:8888'); @@ -366,7 +366,7 @@ const client = new Kernel({ **Bun** [[docs](https://bun.sh/guides/http/proxy)] ```ts -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ fetchOptions: { @@ -378,7 +378,7 @@ const client = new Kernel({ **Deno** [[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)] ```ts -import Kernel from 'npm:@kernel/sdk'; +import Kernel from 'npm:@onkernel/sdk'; const httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } }); const client = new Kernel({ diff --git a/eslint.config.mjs b/eslint.config.mjs index b9c449d..341aac5 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -25,7 +25,7 @@ export default tseslint.config( { patterns: [ { - regex: '^@kernel/sdk(/.*)?', + regex: '^@onkernel/sdk(/.*)?', message: 'Use a relative import, not a package import.', }, ], diff --git a/jest.config.ts b/jest.config.ts index 091bd92..f21115c 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -7,8 +7,8 @@ const config: JestConfigWithTsJest = { '^.+\\.(t|j)sx?$': ['@swc/jest', { sourceMaps: 'inline' }], }, moduleNameMapper: { - '^@kernel/sdk$': '/src/index.ts', - '^@kernel/sdk/(.*)$': '/src/$1', + '^@onkernel/sdk$': '/src/index.ts', + '^@onkernel/sdk/(.*)$': '/src/$1', }, modulePathIgnorePatterns: [ '/ecosystem-tests/', diff --git a/package.json b/package.json index 3628a29..a270b0a 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@kernel/sdk", + "name": "@onkernel/sdk", "version": "0.24.0", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", diff --git a/scripts/build b/scripts/build index c92df21..a008cb0 100755 --- a/scripts/build +++ b/scripts/build @@ -8,7 +8,7 @@ node scripts/utils/check-version.cjs # Build into dist and will publish the package from there, # so that src/resources/foo.ts becomes /resources/foo.js -# This way importing from `"@kernel/sdk/resources/foo"` works +# This way importing from `"@onkernel/sdk/resources/foo"` works # even with `"moduleResolution": "node"` rm -rf dist; mkdir dist @@ -42,8 +42,8 @@ node scripts/utils/postprocess-files.cjs # make sure that nothing crashes when we require the output CJS or # import the output ESM -(cd dist && node -e 'require("@kernel/sdk")') -(cd dist && node -e 'import("@kernel/sdk")' --input-type=module) +(cd dist && node -e 'require("@onkernel/sdk")') +(cd dist && node -e 'import("@onkernel/sdk")' --input-type=module) if [ -e ./scripts/build-deno ] then diff --git a/src/client.ts b/src/client.ts index ac3e3ce..52ecc53 100644 --- a/src/client.ts +++ b/src/client.ts @@ -112,7 +112,7 @@ import { import { isEmptyObj } from './internal/utils/values'; const environments = { - production: 'https://api.kernel.com/', + production: 'https://api.onkernel.com/', development: 'https://localhost:3001/', }; type Environment = keyof typeof environments; @@ -127,7 +127,7 @@ export interface ClientOptions { * Specifies the environment to use for the API. * * Each environment maps to a different base URL: - * - `production` corresponds to `https://api.kernel.com/` + * - `production` corresponds to `https://api.onkernel.com/` * - `development` corresponds to `https://localhost:3001/` */ environment?: Environment | undefined; @@ -224,7 +224,7 @@ export class Kernel { * * @param {string | undefined} [opts.apiKey=process.env['KERNEL_API_KEY'] ?? undefined] * @param {Environment} [opts.environment=production] - Specifies the environment URL to use for the API. - * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.kernel.com/] - Override the default base URL for the API. + * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.onkernel.com/] - Override the default base URL for the API. * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls. * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. diff --git a/tests/api-resources/agents/auth/auth.test.ts b/tests/api-resources/agents/auth/auth.test.ts index ea592ca..1f8a923 100644 --- a/tests/api-resources/agents/auth/auth.test.ts +++ b/tests/api-resources/agents/auth/auth.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/agents/auth/invocations.test.ts b/tests/api-resources/agents/auth/invocations.test.ts index de72d35..b30496c 100644 --- a/tests/api-resources/agents/auth/invocations.test.ts +++ b/tests/api-resources/agents/auth/invocations.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/apps.test.ts b/tests/api-resources/apps.test.ts index 68cc966..d1a35f2 100644 --- a/tests/api-resources/apps.test.ts +++ b/tests/api-resources/apps.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browser-pools.test.ts b/tests/api-resources/browser-pools.test.ts index 148b439..97737bb 100644 --- a/tests/api-resources/browser-pools.test.ts +++ b/tests/api-resources/browser-pools.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index a9bc825..5b315b4 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@kernel/sdk'; +import Kernel, { toFile } from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/computer.test.ts b/tests/api-resources/browsers/computer.test.ts index acdc93d..b95f0fa 100644 --- a/tests/api-resources/browsers/computer.test.ts +++ b/tests/api-resources/browsers/computer.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/fs/fs.test.ts b/tests/api-resources/browsers/fs/fs.test.ts index ebb6d48..92a0c9c 100644 --- a/tests/api-resources/browsers/fs/fs.test.ts +++ b/tests/api-resources/browsers/fs/fs.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@kernel/sdk'; +import Kernel, { toFile } from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/fs/watch.test.ts b/tests/api-resources/browsers/fs/watch.test.ts index 0e4e3a6..47ddfb8 100644 --- a/tests/api-resources/browsers/fs/watch.test.ts +++ b/tests/api-resources/browsers/fs/watch.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/logs.test.ts b/tests/api-resources/browsers/logs.test.ts index 3fb0227..0fa405e 100644 --- a/tests/api-resources/browsers/logs.test.ts +++ b/tests/api-resources/browsers/logs.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/playwright.test.ts b/tests/api-resources/browsers/playwright.test.ts index b2a6fe5..5c45947 100644 --- a/tests/api-resources/browsers/playwright.test.ts +++ b/tests/api-resources/browsers/playwright.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/process.test.ts b/tests/api-resources/browsers/process.test.ts index 6418355..138070a 100644 --- a/tests/api-resources/browsers/process.test.ts +++ b/tests/api-resources/browsers/process.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/replays.test.ts b/tests/api-resources/browsers/replays.test.ts index 3484b8c..d0ee498 100644 --- a/tests/api-resources/browsers/replays.test.ts +++ b/tests/api-resources/browsers/replays.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/credentials.test.ts b/tests/api-resources/credentials.test.ts index f0e11b6..d825b4e 100644 --- a/tests/api-resources/credentials.test.ts +++ b/tests/api-resources/credentials.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/deployments.test.ts b/tests/api-resources/deployments.test.ts index bbc3793..b3f0c20 100644 --- a/tests/api-resources/deployments.test.ts +++ b/tests/api-resources/deployments.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/extensions.test.ts b/tests/api-resources/extensions.test.ts index eaeb587..515415f 100644 --- a/tests/api-resources/extensions.test.ts +++ b/tests/api-resources/extensions.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@kernel/sdk'; +import Kernel, { toFile } from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/invocations.test.ts b/tests/api-resources/invocations.test.ts index d8f4e5d..b8c8024 100644 --- a/tests/api-resources/invocations.test.ts +++ b/tests/api-resources/invocations.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/profiles.test.ts b/tests/api-resources/profiles.test.ts index 51a2925..9fe686a 100644 --- a/tests/api-resources/profiles.test.ts +++ b/tests/api-resources/profiles.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/proxies.test.ts b/tests/api-resources/proxies.test.ts index afe5fce..1086c4f 100644 --- a/tests/api-resources/proxies.test.ts +++ b/tests/api-resources/proxies.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/base64.test.ts b/tests/base64.test.ts index 9b72246..2e2538e 100644 --- a/tests/base64.test.ts +++ b/tests/base64.test.ts @@ -1,4 +1,4 @@ -import { fromBase64, toBase64 } from '@kernel/sdk/internal/utils/base64'; +import { fromBase64, toBase64 } from '@onkernel/sdk/internal/utils/base64'; describe.each(['Buffer', 'atob'])('with %s', (mode) => { let originalBuffer: BufferConstructor; diff --git a/tests/buildHeaders.test.ts b/tests/buildHeaders.test.ts index ec9447a..039a800 100644 --- a/tests/buildHeaders.test.ts +++ b/tests/buildHeaders.test.ts @@ -1,5 +1,5 @@ import { inspect } from 'node:util'; -import { buildHeaders, type HeadersLike, type NullableHeaders } from '@kernel/sdk/internal/headers'; +import { buildHeaders, type HeadersLike, type NullableHeaders } from '@onkernel/sdk/internal/headers'; function inspectNullableHeaders(headers: NullableHeaders) { return `NullableHeaders {${[ diff --git a/tests/form.test.ts b/tests/form.test.ts index 0c30749..8abe689 100644 --- a/tests/form.test.ts +++ b/tests/form.test.ts @@ -1,5 +1,5 @@ -import { multipartFormRequestOptions, createForm } from '@kernel/sdk/internal/uploads'; -import { toFile } from '@kernel/sdk/core/uploads'; +import { multipartFormRequestOptions, createForm } from '@onkernel/sdk/internal/uploads'; +import { toFile } from '@onkernel/sdk/core/uploads'; describe('form data validation', () => { test('valid values do not error', async () => { diff --git a/tests/index.test.ts b/tests/index.test.ts index 39fcf67..90d04c4 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,10 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { APIPromise } from '@kernel/sdk/core/api-promise'; +import { APIPromise } from '@onkernel/sdk/core/api-promise'; import util from 'node:util'; -import Kernel from '@kernel/sdk'; -import { APIUserAbortError } from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; +import { APIUserAbortError } from '@onkernel/sdk'; const defaultFetch = fetch; describe('instantiate client', () => { @@ -322,13 +322,13 @@ describe('instantiate client', () => { test('empty env variable', () => { process.env['KERNEL_BASE_URL'] = ''; // empty const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.kernel.com/'); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); test('blank env variable', () => { process.env['KERNEL_BASE_URL'] = ' '; // blank const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.kernel.com/'); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); test('env variable with environment', () => { @@ -345,7 +345,7 @@ describe('instantiate client', () => { baseURL: null, environment: 'production', }); - expect(client.baseURL).toEqual('https://api.kernel.com/'); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); test('in request options', () => { diff --git a/tests/internal/decoders/line.test.ts b/tests/internal/decoders/line.test.ts index 9f83564..1146678 100644 --- a/tests/internal/decoders/line.test.ts +++ b/tests/internal/decoders/line.test.ts @@ -1,4 +1,4 @@ -import { findDoubleNewlineIndex, LineDecoder } from '@kernel/sdk/internal/decoders/line'; +import { findDoubleNewlineIndex, LineDecoder } from '@onkernel/sdk/internal/decoders/line'; function decodeChunks(chunks: string[], { flush }: { flush: boolean } = { flush: false }): string[] { const decoder = new LineDecoder(); diff --git a/tests/path.test.ts b/tests/path.test.ts index 247f0c8..b209e96 100644 --- a/tests/path.test.ts +++ b/tests/path.test.ts @@ -1,4 +1,4 @@ -import { createPathTagFunction, encodeURIPath } from '@kernel/sdk/internal/utils/path'; +import { createPathTagFunction, encodeURIPath } from '@onkernel/sdk/internal/utils/path'; import { inspect } from 'node:util'; import { runInNewContext } from 'node:vm'; diff --git a/tests/streaming.test.ts b/tests/streaming.test.ts index ac5aa48..0124e21 100644 --- a/tests/streaming.test.ts +++ b/tests/streaming.test.ts @@ -1,6 +1,6 @@ import assert from 'assert'; -import { _iterSSEMessages } from '@kernel/sdk/core/streaming'; -import { ReadableStreamFrom } from '@kernel/sdk/internal/shims'; +import { _iterSSEMessages } from '@onkernel/sdk/core/streaming'; +import { ReadableStreamFrom } from '@onkernel/sdk/internal/shims'; describe('streaming decoding', () => { test('basic', async () => { diff --git a/tests/stringifyQuery.test.ts b/tests/stringifyQuery.test.ts index 05e5cc3..1170f01 100644 --- a/tests/stringifyQuery.test.ts +++ b/tests/stringifyQuery.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { Kernel } from '@kernel/sdk'; +import { Kernel } from '@onkernel/sdk'; const { stringifyQuery } = Kernel.prototype as any; diff --git a/tests/uploads.test.ts b/tests/uploads.test.ts index df09f70..ba84b0c 100644 --- a/tests/uploads.test.ts +++ b/tests/uploads.test.ts @@ -1,6 +1,6 @@ import fs from 'fs'; -import type { ResponseLike } from '@kernel/sdk/internal/to-file'; -import { toFile } from '@kernel/sdk/core/uploads'; +import type { ResponseLike } from '@onkernel/sdk/internal/to-file'; +import { toFile } from '@onkernel/sdk/core/uploads'; import { File } from 'node:buffer'; class MyClass { @@ -97,7 +97,7 @@ describe('missing File error message', () => { }); test('is thrown', async () => { - const uploads = await import('@kernel/sdk/core/uploads'); + const uploads = await import('@onkernel/sdk/core/uploads'); await expect( uploads.toFile(mockResponse({ url: 'https://example.com/my/audio.mp3' })), ).rejects.toMatchInlineSnapshot( diff --git a/tsconfig.build.json b/tsconfig.build.json index f161b5d..762269d 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -5,8 +5,8 @@ "compilerOptions": { "rootDir": "./dist/src", "paths": { - "@kernel/sdk/*": ["./dist/src/*"], - "@kernel/sdk": ["./dist/src/index.ts"] + "@onkernel/sdk/*": ["./dist/src/*"], + "@onkernel/sdk": ["./dist/src/index.ts"] }, "noEmit": false, "declaration": true, diff --git a/tsconfig.json b/tsconfig.json index 57fc9d6..73ce218 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,8 +8,8 @@ "moduleResolution": "node", "esModuleInterop": true, "paths": { - "@kernel/sdk/*": ["./src/*"], - "@kernel/sdk": ["./src/index.ts"] + "@onkernel/sdk/*": ["./src/*"], + "@onkernel/sdk": ["./src/index.ts"] }, "noEmit": true, From b18e46d414be71e13a43cace1e4b60411908100d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 23:58:32 +0000 Subject: [PATCH 05/15] feat: add WebSocket process attach and PTY support --- .stats.yml | 8 +-- api.md | 2 + src/resources/browsers/browsers.ts | 4 ++ src/resources/browsers/index.ts | 2 + src/resources/browsers/process.ts | 68 ++++++++++++++++++++ tests/api-resources/browsers/process.test.ts | 28 ++++++++ 6 files changed, 108 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8bd6c68..e7a094f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 89 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-8e4a29d23d2882fcb0864606091790fd58bffa4f5d5c8d081052b72ad47b215b.yml -openapi_spec_hash: fc82d930dad739ac01e3c2bddba7bf61 -config_hash: d0585c44724cd7deecea60a5ffae69df +configured_endpoints: 90 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-6a44c851ec955b997558a8524eb641355ff3097474f40772b8ea2fef5bee4134.yml +openapi_spec_hash: 155ee005a1b43e1c11e843de91e9f509 +config_hash: 6cbbf855a29bc675f35ddb1106ea9083 diff --git a/api.md b/api.md index 8d44e74..48dff70 100644 --- a/api.md +++ b/api.md @@ -133,6 +133,7 @@ Types: - ProcessExecResponse - ProcessKillResponse +- ProcessResizeResponse - ProcessSpawnResponse - ProcessStatusResponse - ProcessStdinResponse @@ -142,6 +143,7 @@ Methods: - client.browsers.process.exec(id, { ...params }) -> ProcessExecResponse - client.browsers.process.kill(processID, { ...params }) -> ProcessKillResponse +- client.browsers.process.resize(processID, { ...params }) -> ProcessResizeResponse - client.browsers.process.spawn(id, { ...params }) -> ProcessSpawnResponse - client.browsers.process.status(processID, { ...params }) -> ProcessStatusResponse - client.browsers.process.stdin(processID, { ...params }) -> ProcessStdinResponse diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index b42c383..c12665d 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -26,6 +26,8 @@ import { ProcessExecResponse, ProcessKillParams, ProcessKillResponse, + ProcessResizeParams, + ProcessResizeResponse, ProcessSpawnParams, ProcessSpawnResponse, ProcessStatusParams, @@ -615,12 +617,14 @@ export declare namespace Browsers { Process as Process, type ProcessExecResponse as ProcessExecResponse, type ProcessKillResponse as ProcessKillResponse, + type ProcessResizeResponse as ProcessResizeResponse, type ProcessSpawnResponse as ProcessSpawnResponse, type ProcessStatusResponse as ProcessStatusResponse, type ProcessStdinResponse as ProcessStdinResponse, type ProcessStdoutStreamResponse as ProcessStdoutStreamResponse, type ProcessExecParams as ProcessExecParams, type ProcessKillParams as ProcessKillParams, + type ProcessResizeParams as ProcessResizeParams, type ProcessSpawnParams as ProcessSpawnParams, type ProcessStatusParams as ProcessStatusParams, type ProcessStdinParams as ProcessStdinParams, diff --git a/src/resources/browsers/index.ts b/src/resources/browsers/index.ts index 569517a..fc8f7c5 100644 --- a/src/resources/browsers/index.ts +++ b/src/resources/browsers/index.ts @@ -48,12 +48,14 @@ export { Process, type ProcessExecResponse, type ProcessKillResponse, + type ProcessResizeResponse, type ProcessSpawnResponse, type ProcessStatusResponse, type ProcessStdinResponse, type ProcessStdoutStreamResponse, type ProcessExecParams, type ProcessKillParams, + type ProcessResizeParams, type ProcessSpawnParams, type ProcessStatusParams, type ProcessStdinParams, diff --git a/src/resources/browsers/process.ts b/src/resources/browsers/process.ts index 2a3be95..a19f8b9 100644 --- a/src/resources/browsers/process.ts +++ b/src/resources/browsers/process.ts @@ -42,6 +42,30 @@ export class Process extends APIResource { return this._client.post(path`/browsers/${id}/process/${processID}/kill`, { body, ...options }); } + /** + * Resize a PTY-backed process terminal + * + * @example + * ```ts + * const response = await client.browsers.process.resize( + * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', + * { + * id: 'id', + * cols: 1, + * rows: 1, + * }, + * ); + * ``` + */ + resize( + processID: string, + params: ProcessResizeParams, + options?: RequestOptions, + ): APIPromise { + const { id, ...body } = params; + return this._client.post(path`/browsers/${id}/process/${processID}/resize`, { body, ...options }); + } + /** * Execute a command asynchronously * @@ -156,6 +180,16 @@ export interface ProcessKillResponse { ok: boolean; } +/** + * Generic OK response. + */ +export interface ProcessResizeResponse { + /** + * Indicates success. + */ + ok: boolean; +} + /** * Information about a spawned process. */ @@ -285,12 +319,34 @@ export interface ProcessKillParams { signal: 'TERM' | 'KILL' | 'INT' | 'HUP'; } +export interface ProcessResizeParams { + /** + * Path param: Browser session ID + */ + id: string; + + /** + * Body param: New terminal columns. + */ + cols: number; + + /** + * Body param: New terminal rows. + */ + rows: number; +} + export interface ProcessSpawnParams { /** * Executable or shell command to run. */ command: string; + /** + * Allocate a pseudo-terminal (PTY) for interactive shells. + */ + allocate_tty?: boolean; + /** * Command arguments. */ @@ -306,6 +362,11 @@ export interface ProcessSpawnParams { */ as_user?: string | null; + /** + * Initial terminal columns. Only used when allocate_tty is true. + */ + cols?: number; + /** * Working directory (absolute path) to run the command in. */ @@ -316,6 +377,11 @@ export interface ProcessSpawnParams { */ env?: { [key: string]: string }; + /** + * Initial terminal rows. Only used when allocate_tty is true. + */ + rows?: number; + /** * Maximum execution time in seconds. */ @@ -352,12 +418,14 @@ export declare namespace Process { export { type ProcessExecResponse as ProcessExecResponse, type ProcessKillResponse as ProcessKillResponse, + type ProcessResizeResponse as ProcessResizeResponse, type ProcessSpawnResponse as ProcessSpawnResponse, type ProcessStatusResponse as ProcessStatusResponse, type ProcessStdinResponse as ProcessStdinResponse, type ProcessStdoutStreamResponse as ProcessStdoutStreamResponse, type ProcessExecParams as ProcessExecParams, type ProcessKillParams as ProcessKillParams, + type ProcessResizeParams as ProcessResizeParams, type ProcessSpawnParams as ProcessSpawnParams, type ProcessStatusParams as ProcessStatusParams, type ProcessStdinParams as ProcessStdinParams, diff --git a/tests/api-resources/browsers/process.test.ts b/tests/api-resources/browsers/process.test.ts index 138070a..c608e24 100644 --- a/tests/api-resources/browsers/process.test.ts +++ b/tests/api-resources/browsers/process.test.ts @@ -56,6 +56,31 @@ describe('resource process', () => { }); }); + // Prism tests are disabled + test.skip('resize: only required params', async () => { + const responsePromise = client.browsers.process.resize('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { + id: 'id', + cols: 1, + rows: 1, + }); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + // Prism tests are disabled + test.skip('resize: required and optional params', async () => { + const response = await client.browsers.process.resize('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { + id: 'id', + cols: 1, + rows: 1, + }); + }); + // Prism tests are disabled test.skip('spawn: only required params', async () => { const responsePromise = client.browsers.process.spawn('id', { command: 'command' }); @@ -72,11 +97,14 @@ describe('resource process', () => { test.skip('spawn: required and optional params', async () => { const response = await client.browsers.process.spawn('id', { command: 'command', + allocate_tty: true, args: ['string'], as_root: true, as_user: 'as_user', + cols: 1, cwd: '/J!', env: { foo: 'string' }, + rows: 1, timeout_sec: 0, }); }); From b695aee782f55865f912f24fc67041718597c98a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 05:08:33 +0000 Subject: [PATCH 06/15] chore(internal): upgrade babel, qs, js-yaml --- yarn.lock | 556 ++++++++++++++++++++++++------------------------------ 1 file changed, 249 insertions(+), 307 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5f56a20..fc9f262 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,14 +7,6 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@andrewbranch/untar.js@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@andrewbranch/untar.js/-/untar.js-1.0.3.tgz#ba9494f85eb83017c5c855763969caf1d0adea00" @@ -46,155 +38,119 @@ typescript "5.6.1-rc" validate-npm-package-name "^5.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.28.6.tgz#72499312ec58b1e2245ba4a4f550c132be4982f7" + integrity sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@babel/helper-validator-identifier" "^7.28.5" + js-tokens "^4.0.0" + picocolors "^1.1.1" -"@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.6.tgz#103f466803fa0f059e82ccac271475470570d74c" + integrity sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" - integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.6" - "@babel/parser" "^7.23.6" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.6" - "@babel/types" "^7.23.6" + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.6.tgz#531bf883a1126e53501ba46eb3bb414047af507f" + integrity sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/generator" "^7.28.6" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helpers" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" + "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.28.6", "@babel/generator@^7.7.2": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.6.tgz#48dcc65d98fcc8626a48f72b62e263d25fc3c3f1" + integrity sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw== + dependencies: + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" + integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== + dependencies: + "@babel/compat-data" "^7.28.6" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-module-imports@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" + integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +"@babel/helper-module-transforms@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.6" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" - integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.6" - "@babel/types" "^7.23.6" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" + integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helpers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" + integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== + dependencies: + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" - integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.6.tgz#f01a8885b7fa1e56dd8a155130226cd698ef13fd" + integrity sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ== + dependencies: + "@babel/types" "^7.28.6" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -210,14 +166,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503" + integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -232,13 +202,13 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee" + integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -252,7 +222,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -280,7 +250,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -288,45 +265,41 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/template@^7.22.15", "@babel/template@^7.3.3": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" - integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.6" - "@babel/types" "^7.23.6" + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2" + integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/template@^7.28.6", "@babel/template@^7.3.3": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/traverse@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.6.tgz#871ddc79a80599a5030c53b1cc48cbe3a5583c2e" + integrity sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/generator" "^7.28.6" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.6" + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" debug "^4.3.1" - globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.3.3": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" - integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.6", "@babel/types@^7.3.3": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.6.tgz#c3e9377f1b155005bcc4c46020e7e394e13089df" + integrity sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg== dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" @@ -668,31 +641,38 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18": version "0.3.20" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== @@ -700,6 +680,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1116,13 +1104,6 @@ ansi-regex@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -1200,22 +1181,25 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__traverse" "^7.0.6" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6" + integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" babel-preset-jest@^29.6.3: version "29.6.3" @@ -1230,18 +1214,23 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +baseline-browser-mapping@^2.9.0: + version "2.9.14" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz#3b6af0bc032445bca04de58caa9a87cfe921cbb3" + integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg== + brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" @@ -1252,15 +1241,16 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== +browserslist@^4.24.0: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" bs-logger@0.x: version "0.2.6" @@ -1296,19 +1286,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001565: - version "1.0.30001570" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" - integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" +caniuse-lite@^1.0.30001759: + version "1.0.30001764" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz#03206c56469f236103b90f9ae10bcb8b9e1f6005" + integrity sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g== chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" @@ -1397,13 +1378,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -1411,11 +1385,6 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -1507,10 +1476,10 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -electron-to-chromium@^1.4.601: - version "1.4.614" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz#2fe789d61fa09cb875569f37c309d0c2701f91c0" - integrity sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ== +electron-to-chromium@^1.5.263: + version "1.5.267" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7" + integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw== emittery@^0.13.1: version "0.13.1" @@ -1544,10 +1513,10 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^2.0.0: version "2.0.0" @@ -1883,11 +1852,6 @@ glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" @@ -1903,11 +1867,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -2459,9 +2418,9 @@ js-tokens@^4.0.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -2473,10 +2432,10 @@ js-yaml@^4.1.1: dependencies: argparse "^2.0.1" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json-buffer@3.0.1: version "3.0.1" @@ -2711,10 +2670,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== normalize-path@^3.0.0: version "3.0.0" @@ -2882,11 +2841,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" @@ -3190,13 +3144,6 @@ superstruct@^1.0.4: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.4.tgz#0adb99a7578bd2f1c526220da6571b2d485d91ca" integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -3259,11 +3206,6 @@ tmpl@1.0.5: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -3389,13 +3331,13 @@ unicode-emoji-modifier-base@^1.0.0: resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.2.0" + picocolors "^1.1.1" uri-js@^4.2.2: version "4.4.1" From 24e37bb60de11625aa5a5a67ff4f224977cb8955 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 20:05:59 +0000 Subject: [PATCH 07/15] feat(api): add IP address logging for residential and custom proxies --- .stats.yml | 6 ++--- CONTRIBUTING.md | 4 ++-- README.md | 24 +++++++++---------- eslint.config.mjs | 2 +- jest.config.ts | 4 ++-- package.json | 2 +- scripts/build | 6 ++--- src/client.ts | 6 ++--- src/resources/proxies.ts | 20 ++++++++++++++++ tests/api-resources/agents/auth/auth.test.ts | 2 +- .../agents/auth/invocations.test.ts | 2 +- tests/api-resources/apps.test.ts | 2 +- tests/api-resources/browser-pools.test.ts | 2 +- tests/api-resources/browsers/browsers.test.ts | 2 +- tests/api-resources/browsers/computer.test.ts | 2 +- tests/api-resources/browsers/fs/fs.test.ts | 2 +- tests/api-resources/browsers/fs/watch.test.ts | 2 +- tests/api-resources/browsers/logs.test.ts | 2 +- .../api-resources/browsers/playwright.test.ts | 2 +- tests/api-resources/browsers/process.test.ts | 2 +- tests/api-resources/browsers/replays.test.ts | 2 +- tests/api-resources/credentials.test.ts | 2 +- tests/api-resources/deployments.test.ts | 2 +- tests/api-resources/extensions.test.ts | 2 +- tests/api-resources/invocations.test.ts | 2 +- tests/api-resources/profiles.test.ts | 2 +- tests/api-resources/proxies.test.ts | 2 +- tests/base64.test.ts | 2 +- tests/buildHeaders.test.ts | 2 +- tests/form.test.ts | 4 ++-- tests/index.test.ts | 12 +++++----- tests/internal/decoders/line.test.ts | 2 +- tests/path.test.ts | 2 +- tests/streaming.test.ts | 4 ++-- tests/stringifyQuery.test.ts | 2 +- tests/uploads.test.ts | 6 ++--- tsconfig.build.json | 4 ++-- tsconfig.json | 4 ++-- 38 files changed, 87 insertions(+), 67 deletions(-) diff --git a/.stats.yml b/.stats.yml index e7a094f..f0310d3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 90 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-6a44c851ec955b997558a8524eb641355ff3097474f40772b8ea2fef5bee4134.yml -openapi_spec_hash: 155ee005a1b43e1c11e843de91e9f509 -config_hash: 6cbbf855a29bc675f35ddb1106ea9083 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-cc60c65c6bb0b8a8ea662cf758806e641790870ded35f6ffdb9f4801f3d29b15.yml +openapi_spec_hash: a1074e1bba578bcd5912512166ada0dc +config_hash: 7868d3397406c2974b6f058488aeefd6 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30dc126..6434ec2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,12 +55,12 @@ $ cd kernel-node-sdk # With yarn $ yarn link $ cd ../my-package -$ yarn link @onkernel/sdk +$ yarn link @kernel/sdk # With pnpm $ pnpm link --global $ cd ../my-package -$ pnpm link -—global @onkernel/sdk +$ pnpm link -—global @kernel/sdk ``` ## Running tests diff --git a/README.md b/README.md index 21f3524..17efd10 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Kernel TypeScript API Library -[![NPM version]()](https://npmjs.org/package/@onkernel/sdk) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@onkernel/sdk) +[![NPM version]()](https://npmjs.org/package/@kernel/sdk) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/@kernel/sdk) This library provides convenient access to the Kernel REST API from server-side TypeScript or JavaScript. @@ -11,7 +11,7 @@ It is generated with [Stainless](https://www.stainless.com/). ## Installation ```sh -npm install @onkernel/sdk +npm install @kernel/sdk ``` ## Usage @@ -20,7 +20,7 @@ The full API of this library can be found in [api.md](api.md). ```js -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted @@ -38,7 +38,7 @@ This library includes TypeScript definitions for all request params and response ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted @@ -62,7 +62,7 @@ Request parameters that correspond to file uploads can be passed in many differe ```ts import fs from 'fs'; -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel(); @@ -227,7 +227,7 @@ The log level can be configured in two ways: 2. Using the `logLevel` client option (overrides the environment variable if set) ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ logLevel: 'debug', // Show all log messages @@ -255,7 +255,7 @@ When providing a custom logger, the `logLevel` option still controls which messa below the configured level will not be sent to your logger. ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; import pino from 'pino'; const logger = pino(); @@ -324,7 +324,7 @@ globalThis.fetch = fetch; Or pass it to the client: ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; import fetch from 'my-fetch'; const client = new Kernel({ fetch }); @@ -335,7 +335,7 @@ const client = new Kernel({ fetch }); If you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.) ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ fetchOptions: { @@ -352,7 +352,7 @@ options to requests: **Node** [[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)] ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; import * as undici from 'undici'; const proxyAgent = new undici.ProxyAgent('http://localhost:8888'); @@ -366,7 +366,7 @@ const client = new Kernel({ **Bun** [[docs](https://bun.sh/guides/http/proxy)] ```ts -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ fetchOptions: { @@ -378,7 +378,7 @@ const client = new Kernel({ **Deno** [[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)] ```ts -import Kernel from 'npm:@onkernel/sdk'; +import Kernel from 'npm:@kernel/sdk'; const httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } }); const client = new Kernel({ diff --git a/eslint.config.mjs b/eslint.config.mjs index 341aac5..b9c449d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -25,7 +25,7 @@ export default tseslint.config( { patterns: [ { - regex: '^@onkernel/sdk(/.*)?', + regex: '^@kernel/sdk(/.*)?', message: 'Use a relative import, not a package import.', }, ], diff --git a/jest.config.ts b/jest.config.ts index f21115c..091bd92 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -7,8 +7,8 @@ const config: JestConfigWithTsJest = { '^.+\\.(t|j)sx?$': ['@swc/jest', { sourceMaps: 'inline' }], }, moduleNameMapper: { - '^@onkernel/sdk$': '/src/index.ts', - '^@onkernel/sdk/(.*)$': '/src/$1', + '^@kernel/sdk$': '/src/index.ts', + '^@kernel/sdk/(.*)$': '/src/$1', }, modulePathIgnorePatterns: [ '/ecosystem-tests/', diff --git a/package.json b/package.json index a270b0a..3628a29 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@onkernel/sdk", + "name": "@kernel/sdk", "version": "0.24.0", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", diff --git a/scripts/build b/scripts/build index a008cb0..c92df21 100755 --- a/scripts/build +++ b/scripts/build @@ -8,7 +8,7 @@ node scripts/utils/check-version.cjs # Build into dist and will publish the package from there, # so that src/resources/foo.ts becomes /resources/foo.js -# This way importing from `"@onkernel/sdk/resources/foo"` works +# This way importing from `"@kernel/sdk/resources/foo"` works # even with `"moduleResolution": "node"` rm -rf dist; mkdir dist @@ -42,8 +42,8 @@ node scripts/utils/postprocess-files.cjs # make sure that nothing crashes when we require the output CJS or # import the output ESM -(cd dist && node -e 'require("@onkernel/sdk")') -(cd dist && node -e 'import("@onkernel/sdk")' --input-type=module) +(cd dist && node -e 'require("@kernel/sdk")') +(cd dist && node -e 'import("@kernel/sdk")' --input-type=module) if [ -e ./scripts/build-deno ] then diff --git a/src/client.ts b/src/client.ts index 52ecc53..ac3e3ce 100644 --- a/src/client.ts +++ b/src/client.ts @@ -112,7 +112,7 @@ import { import { isEmptyObj } from './internal/utils/values'; const environments = { - production: 'https://api.onkernel.com/', + production: 'https://api.kernel.com/', development: 'https://localhost:3001/', }; type Environment = keyof typeof environments; @@ -127,7 +127,7 @@ export interface ClientOptions { * Specifies the environment to use for the API. * * Each environment maps to a different base URL: - * - `production` corresponds to `https://api.onkernel.com/` + * - `production` corresponds to `https://api.kernel.com/` * - `development` corresponds to `https://localhost:3001/` */ environment?: Environment | undefined; @@ -224,7 +224,7 @@ export class Kernel { * * @param {string | undefined} [opts.apiKey=process.env['KERNEL_API_KEY'] ?? undefined] * @param {Environment} [opts.environment=production] - Specifies the environment URL to use for the API. - * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.onkernel.com/] - Override the default base URL for the API. + * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.kernel.com/] - Override the default base URL for the API. * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls. * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. diff --git a/src/resources/proxies.ts b/src/resources/proxies.ts index a8040b1..f30203f 100644 --- a/src/resources/proxies.ts +++ b/src/resources/proxies.ts @@ -68,6 +68,11 @@ export interface ProxyCreateResponse { | ProxyCreateResponse.MobileProxyConfig | ProxyCreateResponse.CustomProxyConfig; + /** + * IP address that the proxy uses when making requests. + */ + ip_address?: string; + /** * Timestamp of the last health check performed on this proxy. */ @@ -288,6 +293,11 @@ export interface ProxyRetrieveResponse { | ProxyRetrieveResponse.MobileProxyConfig | ProxyRetrieveResponse.CustomProxyConfig; + /** + * IP address that the proxy uses when making requests. + */ + ip_address?: string; + /** * Timestamp of the last health check performed on this proxy. */ @@ -511,6 +521,11 @@ export namespace ProxyListResponse { | ProxyListResponseItem.MobileProxyConfig | ProxyListResponseItem.CustomProxyConfig; + /** + * IP address that the proxy uses when making requests. + */ + ip_address?: string; + /** * Timestamp of the last health check performed on this proxy. */ @@ -732,6 +747,11 @@ export interface ProxyCheckResponse { | ProxyCheckResponse.MobileProxyConfig | ProxyCheckResponse.CustomProxyConfig; + /** + * IP address that the proxy uses when making requests. + */ + ip_address?: string; + /** * Timestamp of the last health check performed on this proxy. */ diff --git a/tests/api-resources/agents/auth/auth.test.ts b/tests/api-resources/agents/auth/auth.test.ts index 1f8a923..ea592ca 100644 --- a/tests/api-resources/agents/auth/auth.test.ts +++ b/tests/api-resources/agents/auth/auth.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/agents/auth/invocations.test.ts b/tests/api-resources/agents/auth/invocations.test.ts index b30496c..de72d35 100644 --- a/tests/api-resources/agents/auth/invocations.test.ts +++ b/tests/api-resources/agents/auth/invocations.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/apps.test.ts b/tests/api-resources/apps.test.ts index d1a35f2..68cc966 100644 --- a/tests/api-resources/apps.test.ts +++ b/tests/api-resources/apps.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browser-pools.test.ts b/tests/api-resources/browser-pools.test.ts index 97737bb..148b439 100644 --- a/tests/api-resources/browser-pools.test.ts +++ b/tests/api-resources/browser-pools.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 5b315b4..a9bc825 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/computer.test.ts b/tests/api-resources/browsers/computer.test.ts index b95f0fa..acdc93d 100644 --- a/tests/api-resources/browsers/computer.test.ts +++ b/tests/api-resources/browsers/computer.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/fs/fs.test.ts b/tests/api-resources/browsers/fs/fs.test.ts index 92a0c9c..ebb6d48 100644 --- a/tests/api-resources/browsers/fs/fs.test.ts +++ b/tests/api-resources/browsers/fs/fs.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/fs/watch.test.ts b/tests/api-resources/browsers/fs/watch.test.ts index 47ddfb8..0e4e3a6 100644 --- a/tests/api-resources/browsers/fs/watch.test.ts +++ b/tests/api-resources/browsers/fs/watch.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/logs.test.ts b/tests/api-resources/browsers/logs.test.ts index 0fa405e..3fb0227 100644 --- a/tests/api-resources/browsers/logs.test.ts +++ b/tests/api-resources/browsers/logs.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/playwright.test.ts b/tests/api-resources/browsers/playwright.test.ts index 5c45947..b2a6fe5 100644 --- a/tests/api-resources/browsers/playwright.test.ts +++ b/tests/api-resources/browsers/playwright.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/process.test.ts b/tests/api-resources/browsers/process.test.ts index c608e24..c428741 100644 --- a/tests/api-resources/browsers/process.test.ts +++ b/tests/api-resources/browsers/process.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/browsers/replays.test.ts b/tests/api-resources/browsers/replays.test.ts index d0ee498..3484b8c 100644 --- a/tests/api-resources/browsers/replays.test.ts +++ b/tests/api-resources/browsers/replays.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/credentials.test.ts b/tests/api-resources/credentials.test.ts index d825b4e..f0e11b6 100644 --- a/tests/api-resources/credentials.test.ts +++ b/tests/api-resources/credentials.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/deployments.test.ts b/tests/api-resources/deployments.test.ts index b3f0c20..bbc3793 100644 --- a/tests/api-resources/deployments.test.ts +++ b/tests/api-resources/deployments.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/extensions.test.ts b/tests/api-resources/extensions.test.ts index 515415f..eaeb587 100644 --- a/tests/api-resources/extensions.test.ts +++ b/tests/api-resources/extensions.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel, { toFile } from '@onkernel/sdk'; +import Kernel, { toFile } from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/invocations.test.ts b/tests/api-resources/invocations.test.ts index b8c8024..d8f4e5d 100644 --- a/tests/api-resources/invocations.test.ts +++ b/tests/api-resources/invocations.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/profiles.test.ts b/tests/api-resources/profiles.test.ts index 9fe686a..51a2925 100644 --- a/tests/api-resources/profiles.test.ts +++ b/tests/api-resources/profiles.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/api-resources/proxies.test.ts b/tests/api-resources/proxies.test.ts index 1086c4f..afe5fce 100644 --- a/tests/api-resources/proxies.test.ts +++ b/tests/api-resources/proxies.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import Kernel from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; const client = new Kernel({ apiKey: 'My API Key', diff --git a/tests/base64.test.ts b/tests/base64.test.ts index 2e2538e..9b72246 100644 --- a/tests/base64.test.ts +++ b/tests/base64.test.ts @@ -1,4 +1,4 @@ -import { fromBase64, toBase64 } from '@onkernel/sdk/internal/utils/base64'; +import { fromBase64, toBase64 } from '@kernel/sdk/internal/utils/base64'; describe.each(['Buffer', 'atob'])('with %s', (mode) => { let originalBuffer: BufferConstructor; diff --git a/tests/buildHeaders.test.ts b/tests/buildHeaders.test.ts index 039a800..ec9447a 100644 --- a/tests/buildHeaders.test.ts +++ b/tests/buildHeaders.test.ts @@ -1,5 +1,5 @@ import { inspect } from 'node:util'; -import { buildHeaders, type HeadersLike, type NullableHeaders } from '@onkernel/sdk/internal/headers'; +import { buildHeaders, type HeadersLike, type NullableHeaders } from '@kernel/sdk/internal/headers'; function inspectNullableHeaders(headers: NullableHeaders) { return `NullableHeaders {${[ diff --git a/tests/form.test.ts b/tests/form.test.ts index 8abe689..0c30749 100644 --- a/tests/form.test.ts +++ b/tests/form.test.ts @@ -1,5 +1,5 @@ -import { multipartFormRequestOptions, createForm } from '@onkernel/sdk/internal/uploads'; -import { toFile } from '@onkernel/sdk/core/uploads'; +import { multipartFormRequestOptions, createForm } from '@kernel/sdk/internal/uploads'; +import { toFile } from '@kernel/sdk/core/uploads'; describe('form data validation', () => { test('valid values do not error', async () => { diff --git a/tests/index.test.ts b/tests/index.test.ts index 90d04c4..39fcf67 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,10 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { APIPromise } from '@onkernel/sdk/core/api-promise'; +import { APIPromise } from '@kernel/sdk/core/api-promise'; import util from 'node:util'; -import Kernel from '@onkernel/sdk'; -import { APIUserAbortError } from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; +import { APIUserAbortError } from '@kernel/sdk'; const defaultFetch = fetch; describe('instantiate client', () => { @@ -322,13 +322,13 @@ describe('instantiate client', () => { test('empty env variable', () => { process.env['KERNEL_BASE_URL'] = ''; // empty const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); + expect(client.baseURL).toEqual('https://api.kernel.com/'); }); test('blank env variable', () => { process.env['KERNEL_BASE_URL'] = ' '; // blank const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); + expect(client.baseURL).toEqual('https://api.kernel.com/'); }); test('env variable with environment', () => { @@ -345,7 +345,7 @@ describe('instantiate client', () => { baseURL: null, environment: 'production', }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); + expect(client.baseURL).toEqual('https://api.kernel.com/'); }); test('in request options', () => { diff --git a/tests/internal/decoders/line.test.ts b/tests/internal/decoders/line.test.ts index 1146678..9f83564 100644 --- a/tests/internal/decoders/line.test.ts +++ b/tests/internal/decoders/line.test.ts @@ -1,4 +1,4 @@ -import { findDoubleNewlineIndex, LineDecoder } from '@onkernel/sdk/internal/decoders/line'; +import { findDoubleNewlineIndex, LineDecoder } from '@kernel/sdk/internal/decoders/line'; function decodeChunks(chunks: string[], { flush }: { flush: boolean } = { flush: false }): string[] { const decoder = new LineDecoder(); diff --git a/tests/path.test.ts b/tests/path.test.ts index b209e96..247f0c8 100644 --- a/tests/path.test.ts +++ b/tests/path.test.ts @@ -1,4 +1,4 @@ -import { createPathTagFunction, encodeURIPath } from '@onkernel/sdk/internal/utils/path'; +import { createPathTagFunction, encodeURIPath } from '@kernel/sdk/internal/utils/path'; import { inspect } from 'node:util'; import { runInNewContext } from 'node:vm'; diff --git a/tests/streaming.test.ts b/tests/streaming.test.ts index 0124e21..ac5aa48 100644 --- a/tests/streaming.test.ts +++ b/tests/streaming.test.ts @@ -1,6 +1,6 @@ import assert from 'assert'; -import { _iterSSEMessages } from '@onkernel/sdk/core/streaming'; -import { ReadableStreamFrom } from '@onkernel/sdk/internal/shims'; +import { _iterSSEMessages } from '@kernel/sdk/core/streaming'; +import { ReadableStreamFrom } from '@kernel/sdk/internal/shims'; describe('streaming decoding', () => { test('basic', async () => { diff --git a/tests/stringifyQuery.test.ts b/tests/stringifyQuery.test.ts index 1170f01..05e5cc3 100644 --- a/tests/stringifyQuery.test.ts +++ b/tests/stringifyQuery.test.ts @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { Kernel } from '@onkernel/sdk'; +import { Kernel } from '@kernel/sdk'; const { stringifyQuery } = Kernel.prototype as any; diff --git a/tests/uploads.test.ts b/tests/uploads.test.ts index ba84b0c..df09f70 100644 --- a/tests/uploads.test.ts +++ b/tests/uploads.test.ts @@ -1,6 +1,6 @@ import fs from 'fs'; -import type { ResponseLike } from '@onkernel/sdk/internal/to-file'; -import { toFile } from '@onkernel/sdk/core/uploads'; +import type { ResponseLike } from '@kernel/sdk/internal/to-file'; +import { toFile } from '@kernel/sdk/core/uploads'; import { File } from 'node:buffer'; class MyClass { @@ -97,7 +97,7 @@ describe('missing File error message', () => { }); test('is thrown', async () => { - const uploads = await import('@onkernel/sdk/core/uploads'); + const uploads = await import('@kernel/sdk/core/uploads'); await expect( uploads.toFile(mockResponse({ url: 'https://example.com/my/audio.mp3' })), ).rejects.toMatchInlineSnapshot( diff --git a/tsconfig.build.json b/tsconfig.build.json index 762269d..f161b5d 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -5,8 +5,8 @@ "compilerOptions": { "rootDir": "./dist/src", "paths": { - "@onkernel/sdk/*": ["./dist/src/*"], - "@onkernel/sdk": ["./dist/src/index.ts"] + "@kernel/sdk/*": ["./dist/src/*"], + "@kernel/sdk": ["./dist/src/index.ts"] }, "noEmit": false, "declaration": true, diff --git a/tsconfig.json b/tsconfig.json index 73ce218..57fc9d6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,8 +8,8 @@ "moduleResolution": "node", "esModuleInterop": true, "paths": { - "@onkernel/sdk/*": ["./src/*"], - "@onkernel/sdk": ["./src/index.ts"] + "@kernel/sdk/*": ["./src/*"], + "@kernel/sdk": ["./src/index.ts"] }, "noEmit": true, From ead291bff1089bfafe05da4d35a2405f3165f7a7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 16:15:43 +0000 Subject: [PATCH 08/15] feat: Support hot swap proxy on a session --- .stats.yml | 8 +- api.md | 2 + src/client.ts | 4 + src/resources/browsers/browsers.ts | 100 ++++++++++++++++++ src/resources/browsers/index.ts | 2 + src/resources/index.ts | 2 + tests/api-resources/browsers/browsers.test.ts | 12 +++ 7 files changed, 126 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index f0310d3..330b531 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 90 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-cc60c65c6bb0b8a8ea662cf758806e641790870ded35f6ffdb9f4801f3d29b15.yml -openapi_spec_hash: a1074e1bba578bcd5912512166ada0dc -config_hash: 7868d3397406c2974b6f058488aeefd6 +configured_endpoints: 91 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-4f5307643555b7917e8681b1966ae0b99f770cf59805e2f917ec7528edf11ba8.yml +openapi_spec_hash: 873a9aa3a88b6cec1ad94f848eeb1c45 +config_hash: 20337f7888852c165d099faa7589c90a diff --git a/api.md b/api.md index 48dff70..45e2b0d 100644 --- a/api.md +++ b/api.md @@ -67,12 +67,14 @@ Types: - Profile - BrowserCreateResponse - BrowserRetrieveResponse +- BrowserUpdateResponse - BrowserListResponse Methods: - client.browsers.create({ ...params }) -> BrowserCreateResponse - client.browsers.retrieve(id) -> BrowserRetrieveResponse +- client.browsers.update(id, { ...params }) -> BrowserUpdateResponse - client.browsers.list({ ...params }) -> BrowserListResponsesOffsetPagination - client.browsers.delete({ ...params }) -> void - client.browsers.deleteByID(id) -> void diff --git a/src/client.ts b/src/client.ts index ac3e3ce..2c87f60 100644 --- a/src/client.ts +++ b/src/client.ts @@ -95,6 +95,8 @@ import { BrowserLoadExtensionsParams, BrowserPersistence, BrowserRetrieveResponse, + BrowserUpdateParams, + BrowserUpdateResponse, Browsers, Profile, } from './resources/browsers/browsers'; @@ -933,9 +935,11 @@ export declare namespace Kernel { type Profile as Profile, type BrowserCreateResponse as BrowserCreateResponse, type BrowserRetrieveResponse as BrowserRetrieveResponse, + type BrowserUpdateResponse as BrowserUpdateResponse, type BrowserListResponse as BrowserListResponse, type BrowserListResponsesOffsetPagination as BrowserListResponsesOffsetPagination, type BrowserCreateParams as BrowserCreateParams, + type BrowserUpdateParams as BrowserUpdateParams, type BrowserListParams as BrowserListParams, type BrowserDeleteParams as BrowserDeleteParams, type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams, diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index c12665d..a745380 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -109,6 +109,20 @@ export class Browsers extends APIResource { return this._client.get(path`/browsers/${id}`, options); } + /** + * Update a browser session. + * + * @example + * ```ts + * const browser = await client.browsers.update( + * 'htzv5orfit78e1m2biiifpbv', + * ); + * ``` + */ + update(id: string, body: BrowserUpdateParams, options?: RequestOptions): APIPromise { + return this._client.patch(path`/browsers/${id}`, { body, ...options }); + } + /** * List all browser sessions with pagination support. Use include_deleted=true to * include soft-deleted sessions in the results. @@ -382,6 +396,82 @@ export interface BrowserRetrieveResponse { viewport?: Shared.BrowserViewport; } +export interface BrowserUpdateResponse { + /** + * Websocket URL for Chrome DevTools Protocol connections to the browser session + */ + cdp_ws_url: string; + + /** + * When the browser session was created. + */ + created_at: string; + + /** + * Whether the browser session is running in headless mode. + */ + headless: boolean; + + /** + * Unique identifier for the browser session + */ + session_id: string; + + /** + * Whether the browser session is running in stealth mode. + */ + stealth: boolean; + + /** + * The number of seconds of inactivity before the browser session is terminated. + */ + timeout_seconds: number; + + /** + * Remote URL for live viewing the browser session. Only available for non-headless + * browsers. + */ + browser_live_view_url?: string; + + /** + * When the browser session was soft-deleted. Only present for deleted sessions. + */ + deleted_at?: string; + + /** + * Whether the browser session is running in kiosk mode. + */ + kiosk_mode?: boolean; + + /** + * @deprecated DEPRECATED: Use timeout_seconds (up to 72 hours) and Profiles + * instead. + */ + persistence?: BrowserPersistence; + + /** + * Browser profile metadata. + */ + profile?: Profile; + + /** + * ID of the proxy associated with this browser session, if any. + */ + proxy_id?: string; + + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (1920x1080@25). Only specific viewport configurations are + * supported. The server will reject unsupported combinations. Supported + * resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, + * 1024x768@60, 1200x800@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + viewport?: Shared.BrowserViewport; +} + export interface BrowserListResponse { /** * Websocket URL for Chrome DevTools Protocol connections to the browser session @@ -528,6 +618,14 @@ export interface BrowserCreateParams { viewport?: Shared.BrowserViewport; } +export interface BrowserUpdateParams { + /** + * ID of the proxy to use. Omit to leave unchanged, set to empty string to remove + * proxy. + */ + proxy_id?: string | null; +} + export interface BrowserListParams extends OffsetPaginationParams { /** * When true, includes soft-deleted browser sessions in the results alongside @@ -578,9 +676,11 @@ export declare namespace Browsers { type Profile as Profile, type BrowserCreateResponse as BrowserCreateResponse, type BrowserRetrieveResponse as BrowserRetrieveResponse, + type BrowserUpdateResponse as BrowserUpdateResponse, type BrowserListResponse as BrowserListResponse, type BrowserListResponsesOffsetPagination as BrowserListResponsesOffsetPagination, type BrowserCreateParams as BrowserCreateParams, + type BrowserUpdateParams as BrowserUpdateParams, type BrowserListParams as BrowserListParams, type BrowserDeleteParams as BrowserDeleteParams, type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams, diff --git a/src/resources/browsers/index.ts b/src/resources/browsers/index.ts index fc8f7c5..d00c32c 100644 --- a/src/resources/browsers/index.ts +++ b/src/resources/browsers/index.ts @@ -6,8 +6,10 @@ export { type Profile, type BrowserCreateResponse, type BrowserRetrieveResponse, + type BrowserUpdateResponse, type BrowserListResponse, type BrowserCreateParams, + type BrowserUpdateParams, type BrowserListParams, type BrowserDeleteParams, type BrowserLoadExtensionsParams, diff --git a/src/resources/index.ts b/src/resources/index.ts index f487726..e95e4ae 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -25,8 +25,10 @@ export { type Profile, type BrowserCreateResponse, type BrowserRetrieveResponse, + type BrowserUpdateResponse, type BrowserListResponse, type BrowserCreateParams, + type BrowserUpdateParams, type BrowserListParams, type BrowserDeleteParams, type BrowserLoadExtensionsParams, diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index a9bc825..9703514 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -62,6 +62,18 @@ describe('resource browsers', () => { expect(dataAndResponse.response).toBe(rawResponse); }); + // Prism tests are disabled + test.skip('update', async () => { + const responsePromise = client.browsers.update('htzv5orfit78e1m2biiifpbv', {}); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + // Prism tests are disabled test.skip('list', async () => { const responsePromise = client.browsers.list(); From 178d97f5849a17664a75a971a1095f36cc5c3b63 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 16:16:05 +0000 Subject: [PATCH 09/15] release: 0.26.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 20 ++++++++++++++++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index fc5553b..c84411f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.24.0" + ".": "0.26.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 10efd02..941a157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## 0.26.0 (2026-01-16) + +Full Changelog: [v0.24.0...v0.26.0](https://github.com/kernel/kernel-node-sdk/compare/v0.24.0...v0.26.0) + +### Features + +* add MFA options to agent authentication workflow ([3e2dd3f](https://github.com/kernel/kernel-node-sdk/commit/3e2dd3f657592d6a2e224f0c0238d58514a548f6)) +* add WebSocket process attach and PTY support ([b18e46d](https://github.com/kernel/kernel-node-sdk/commit/b18e46d414be71e13a43cace1e4b60411908100d)) +* **api:** add IP address logging for residential and custom proxies ([24e37bb](https://github.com/kernel/kernel-node-sdk/commit/24e37bb60de11625aa5a5a67ff4f224977cb8955)) +* **api:** manual updates ([b9715f8](https://github.com/kernel/kernel-node-sdk/commit/b9715f89fbd10b6cf48e0d68168750c807f77004)) +* **api:** update production repos ([d18f7de](https://github.com/kernel/kernel-node-sdk/commit/d18f7decf64aa26e70a1c018f5b434af502bd82b)) +* Support hot swap proxy on a session ([ead291b](https://github.com/kernel/kernel-node-sdk/commit/ead291bff1089bfafe05da4d35a2405f3165f7a7)) + + +### Chores + +* **ci:** update org name from onkernel to kernel ([8197587](https://github.com/kernel/kernel-node-sdk/commit/81975879cc89feaf95334a5bd90ba752bd828453)) +* **internal:** upgrade babel, qs, js-yaml ([b695aee](https://github.com/kernel/kernel-node-sdk/commit/b695aee782f55865f912f24fc67041718597c98a)) +* sync repo ([3d1de59](https://github.com/kernel/kernel-node-sdk/commit/3d1de59c268cd3029370b762af25a7032a7e2699)) + ## 0.24.0 (2025-12-17) Full Changelog: [v0.23.0...v0.24.0](https://github.com/onkernel/kernel-node-sdk/compare/v0.23.0...v0.24.0) diff --git a/package.json b/package.json index 3628a29..56082e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kernel/sdk", - "version": "0.24.0", + "version": "0.26.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 7434729..aa25151 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.24.0'; // x-release-please-version +export const VERSION = '0.26.0'; // x-release-please-version From bb100a1041f8f6b86c1efdd36eb166050af8b5a2 Mon Sep 17 00:00:00 2001 From: Steven Miller Date: Fri, 16 Jan 2026 11:42:03 -0500 Subject: [PATCH 10/15] Apply suggestions from code review fix domains Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com> --- CONTRIBUTING.md | 4 ++-- README.md | 4 ++-- tests/index.test.ts | 28 +++++++++++++--------------- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6434ec2..d5a7d5d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -49,7 +49,7 @@ Alternatively, to link a local copy of the repo: ```sh # Clone -$ git clone https://www.github.com/kernel/kernel-node-sdk +$ git clone https://github.com/kernel/kernel-node-sdk $ cd kernel-node-sdk # With yarn @@ -99,7 +99,7 @@ the changes aren't made through the automated pipeline, you may want to make rel ### Publish with a GitHub workflow -You can release to package managers by using [the `Publish NPM` GitHub action](https://www.github.com/kernel/kernel-node-sdk/actions/workflows/publish-npm.yml). This requires a setup organization or repository secret to be set up. +You can release to package managers by using [the `Publish NPM` GitHub action](https://github.com/kernel/kernel-node-sdk/actions/workflows/publish-npm.yml). This requires a setup organization or repository secret to be set up. ### Publish manually diff --git a/README.md b/README.md index 17efd10..a6b0b5f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This library provides convenient access to the Kernel REST API from server-side TypeScript or JavaScript. -The REST API documentation can be found on [docs.kernel.com](https://docs.kernel.com). The full API of this library can be found in [api.md](api.md). +The REST API documentation can be found on [docs.kernel.com](https://www.kernel.sh/docs/api-reference). The full API of this library can be found in [api.md](api.md). It is generated with [Stainless](https://www.stainless.com/). @@ -400,7 +400,7 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience. -We are keen for your feedback; please open an [issue](https://www.github.com/kernel/kernel-node-sdk/issues) with questions, bugs, or suggestions. +We are keen for your feedback; please open an [issue](https://github.com/kernel/kernel-node-sdk/issues) with questions, bugs, or suggestions. ## Requirements diff --git a/tests/index.test.ts b/tests/index.test.ts index 39fcf67..e7cec6b 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -329,23 +329,21 @@ describe('instantiate client', () => { process.env['KERNEL_BASE_URL'] = ' '; // blank const client = new Kernel({ apiKey: 'My API Key' }); expect(client.baseURL).toEqual('https://api.kernel.com/'); - }); - - test('env variable with environment', () => { - process.env['KERNEL_BASE_URL'] = 'https://example.com/from_env'; + expect(client.baseURL).toEqual('https://api.onkernel.com/'); +}); - expect( - () => new Kernel({ apiKey: 'My API Key', environment: 'production' }), - ).toThrowErrorMatchingInlineSnapshot( - `"Ambiguous URL; The \`baseURL\` option (or KERNEL_BASE_URL env var) and the \`environment\` option are given. If you want to use the environment you must pass baseURL: null"`, - ); +test('blank env variable', () => { +process.env['KERNEL_BASE_URL'] = ' '; // blank +const client = new Kernel({ apiKey: 'My API Key' }); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); +}); - const client = new Kernel({ - apiKey: 'My API Key', - baseURL: null, - environment: 'production', - }); - expect(client.baseURL).toEqual('https://api.kernel.com/'); +test('env variable with environment', () => { +@@ -345,7 +345,7 @@ describe('instantiate client', () => { +baseURL: null, +environment: 'production', +}); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); test('in request options', () => { From 32a5d477e419e31e1772db3c86d09032a1df90aa Mon Sep 17 00:00:00 2001 From: Steven Miller Date: Fri, 16 Jan 2026 11:44:40 -0500 Subject: [PATCH 11/15] Apply suggestions from code review --- src/client.ts | 6 +++--- tests/index.test.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/client.ts b/src/client.ts index 2c87f60..581c7fd 100644 --- a/src/client.ts +++ b/src/client.ts @@ -114,7 +114,7 @@ import { import { isEmptyObj } from './internal/utils/values'; const environments = { - production: 'https://api.kernel.com/', + production: 'https://api.onkernel.com/', development: 'https://localhost:3001/', }; type Environment = keyof typeof environments; @@ -129,7 +129,7 @@ export interface ClientOptions { * Specifies the environment to use for the API. * * Each environment maps to a different base URL: - * - `production` corresponds to `https://api.kernel.com/` + * - `production` corresponds to `https://api.onkernel.com/` * - `development` corresponds to `https://localhost:3001/` */ environment?: Environment | undefined; @@ -226,7 +226,7 @@ export class Kernel { * * @param {string | undefined} [opts.apiKey=process.env['KERNEL_API_KEY'] ?? undefined] * @param {Environment} [opts.environment=production] - Specifies the environment URL to use for the API. - * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.kernel.com/] - Override the default base URL for the API. + * @param {string} [opts.baseURL=process.env['KERNEL_BASE_URL'] ?? https://api.onkernel.com/] - Override the default base URL for the API. * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls. * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. diff --git a/tests/index.test.ts b/tests/index.test.ts index e7cec6b..0fe66b1 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -322,13 +322,13 @@ describe('instantiate client', () => { test('empty env variable', () => { process.env['KERNEL_BASE_URL'] = ''; // empty const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.kernel.com/'); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); test('blank env variable', () => { process.env['KERNEL_BASE_URL'] = ' '; // blank const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.kernel.com/'); + expect(client.baseURL).toEqual('https://api.onkernel.com/'); expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); From 6ac5e25de0647d7dc7ec98d9b36ed3d19fe8839a Mon Sep 17 00:00:00 2001 From: Steven Miller Date: Fri, 16 Jan 2026 11:50:42 -0500 Subject: [PATCH 12/15] Revert changed file to main --- tests/index.test.ts | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/tests/index.test.ts b/tests/index.test.ts index 0fe66b1..90d04c4 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,10 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { APIPromise } from '@kernel/sdk/core/api-promise'; +import { APIPromise } from '@onkernel/sdk/core/api-promise'; import util from 'node:util'; -import Kernel from '@kernel/sdk'; -import { APIUserAbortError } from '@kernel/sdk'; +import Kernel from '@onkernel/sdk'; +import { APIUserAbortError } from '@onkernel/sdk'; const defaultFetch = fetch; describe('instantiate client', () => { @@ -329,20 +329,22 @@ describe('instantiate client', () => { process.env['KERNEL_BASE_URL'] = ' '; // blank const client = new Kernel({ apiKey: 'My API Key' }); expect(client.baseURL).toEqual('https://api.onkernel.com/'); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); -}); + }); -test('blank env variable', () => { -process.env['KERNEL_BASE_URL'] = ' '; // blank -const client = new Kernel({ apiKey: 'My API Key' }); - expect(client.baseURL).toEqual('https://api.onkernel.com/'); -}); + test('env variable with environment', () => { + process.env['KERNEL_BASE_URL'] = 'https://example.com/from_env'; -test('env variable with environment', () => { -@@ -345,7 +345,7 @@ describe('instantiate client', () => { -baseURL: null, -environment: 'production', -}); + expect( + () => new Kernel({ apiKey: 'My API Key', environment: 'production' }), + ).toThrowErrorMatchingInlineSnapshot( + `"Ambiguous URL; The \`baseURL\` option (or KERNEL_BASE_URL env var) and the \`environment\` option are given. If you want to use the environment you must pass baseURL: null"`, + ); + + const client = new Kernel({ + apiKey: 'My API Key', + baseURL: null, + environment: 'production', + }); expect(client.baseURL).toEqual('https://api.onkernel.com/'); }); From fbbbf3ceb0db9646c232479880fd927c83882cda Mon Sep 17 00:00:00 2001 From: Steven Miller Date: Fri, 16 Jan 2026 11:54:40 -0500 Subject: [PATCH 13/15] Apply suggestion from @sjmiller609 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a6b0b5f..ea4cb90 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This library provides convenient access to the Kernel REST API from server-side TypeScript or JavaScript. -The REST API documentation can be found on [docs.kernel.com](https://www.kernel.sh/docs/api-reference). The full API of this library can be found in [api.md](api.md). +The REST API documentation can be found on [docs.onkernel.com](https://www.kernel.sh/docs/api-reference). The full API of this library can be found in [api.md](api.md). It is generated with [Stainless](https://www.stainless.com/). From ef26898f28f2adac83ad9071d20699be0231ff9e Mon Sep 17 00:00:00 2001 From: Steven Miller Date: Fri, 16 Jan 2026 11:58:04 -0500 Subject: [PATCH 14/15] Fix lint errors --- tests/index.test.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/index.test.ts b/tests/index.test.ts index 90d04c4..585d4f9 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,10 +1,10 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { APIPromise } from '@onkernel/sdk/core/api-promise'; +import { APIPromise } from '@kernel/sdk/core/api-promise'; import util from 'node:util'; -import Kernel from '@onkernel/sdk'; -import { APIUserAbortError } from '@onkernel/sdk'; +import Kernel from '@kernel/sdk'; +import { APIUserAbortError } from '@kernel/sdk'; const defaultFetch = fetch; describe('instantiate client', () => { @@ -228,7 +228,7 @@ describe('instantiate client', () => { const client = new Kernel({ baseURL: 'http://localhost:5000/', apiKey: 'My API Key', - fetch: (url) => { + fetch: (url: RequestInfo | URL) => { return Promise.resolve( new Response(JSON.stringify({ url, custom: true }), { headers: { 'Content-Type': 'application/json' }, @@ -254,11 +254,11 @@ describe('instantiate client', () => { const client = new Kernel({ baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', apiKey: 'My API Key', - fetch: (...args) => { - return new Promise((resolve, reject) => + fetch: (url: RequestInfo | URL, init?: RequestInit) => { + return new Promise((resolve, reject) => setTimeout( () => - defaultFetch(...args) + defaultFetch(url, init) .then(resolve) .catch(reject), 300, @@ -588,7 +588,7 @@ describe('retries', () => { await client .request({ path: '/foo', method: 'get' }) .asResponse() - .then((r) => r.text()), + .then((r: Response) => r.text()), ).toEqual(JSON.stringify({ a: 1 })); expect(count).toEqual(3); }); @@ -746,7 +746,7 @@ describe('retries', () => { await client .request({ path: '/foo', method: 'get' }) .asResponse() - .then((r) => r.text()), + .then((r: Response) => r.text()), ).toEqual(JSON.stringify({ a: 1 })); expect(count).toEqual(3); }); @@ -776,7 +776,7 @@ describe('retries', () => { await client .request({ path: '/foo', method: 'get' }) .asResponse() - .then((r) => r.text()), + .then((r: Response) => r.text()), ).toEqual(JSON.stringify({ a: 1 })); expect(count).toEqual(3); }); From f9bc543c7926ee0538731f79687e34e3378f379b Mon Sep 17 00:00:00 2001 From: Steven Miller Date: Fri, 16 Jan 2026 12:02:28 -0500 Subject: [PATCH 15/15] Fix lints --- tests/index.test.ts | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/tests/index.test.ts b/tests/index.test.ts index 585d4f9..c485147 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -228,7 +228,7 @@ describe('instantiate client', () => { const client = new Kernel({ baseURL: 'http://localhost:5000/', apiKey: 'My API Key', - fetch: (url: RequestInfo | URL) => { + fetch: (url: string | URL | Request) => { return Promise.resolve( new Response(JSON.stringify({ url, custom: true }), { headers: { 'Content-Type': 'application/json' }, @@ -254,15 +254,9 @@ describe('instantiate client', () => { const client = new Kernel({ baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', apiKey: 'My API Key', - fetch: (url: RequestInfo | URL, init?: RequestInit) => { + fetch: (url: string | URL | Request, init?: RequestInit) => { return new Promise((resolve, reject) => - setTimeout( - () => - defaultFetch(url, init) - .then(resolve) - .catch(reject), - 300, - ), + setTimeout(() => defaultFetch(url, init).then(resolve).catch(reject), 300), ); }, });