diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 88624072..a88c74a9 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.127.0" + ".": "0.128.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 65435303..bd14029e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [0.128.0](https://github.com/kernel/kernel-node-sdk/compare/v0.127.0...v0.128.0) (2026-10-19) + + +### Features + +* Add browser location session policy ([942881d](https://github.com/kernel/kernel-node-sdk/commit/942881d4f685d73cecdfc040115066852b7bf05a)) +* chore(stlc): seal custom-code tracking files ([784dff8](https://github.com/kernel/kernel-node-sdk/commit/784dff8affa0abb1e752609bd1d645578e30677c)) +* Fence browser allowlist updates with revision checks ([733ca11](https://github.com/kernel/kernel-node-sdk/commit/733ca11d1d2ec987d6ffc6e1a1ef96ba769b7bf6)) +* Support existing-user AgentCard wallet imports ([e84e82f](https://github.com/kernel/kernel-node-sdk/commit/e84e82fd96e784397eff238790ab3fc495bc562c)) + ## [0.127.0](https://github.com/kernel/kernel-node-sdk/compare/v0.126.0...v0.127.0) (2026-10-16) diff --git a/api.md b/api.md index 6bf04bb1..e6269a01 100644 --- a/api.md +++ b/api.md @@ -99,6 +99,11 @@ Methods: Types: +- BrowserAllowlistState +- BrowserLocation +- BrowserLocationRequest +- BrowserLocationSource +- BrowserLocationUpdateRequest - BrowserMemory - BrowserMemoryRequest - BrowserNetworkConfig @@ -433,11 +438,11 @@ Types: Methods: - client.proxies.create({ ...params }) -> ProxyCreateResponse -- client.proxies.retrieve(id) -> ProxyRetrieveResponse -- client.proxies.update(id, { ...params }) -> ProxyUpdateResponse +- client.proxies.retrieve(idOrName) -> ProxyRetrieveResponse +- client.proxies.update(idOrName, { ...params }) -> ProxyUpdateResponse - client.proxies.list({ ...params }) -> ProxyListResponsesOffsetPagination -- client.proxies.delete(id) -> void -- client.proxies.check(id, { ...params }) -> ProxyCheckResponse +- client.proxies.delete(idOrName) -> void +- client.proxies.check(idOrName, { ...params }) -> ProxyCheckResponse # Extensions diff --git a/package.json b/package.json index 5ed7034e..da2e388e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.127.0", + "version": "0.128.0", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", "types": "dist/index.d.ts", diff --git a/src/client.ts b/src/client.ts index 2bb96d8e..217cf6ab 100644 --- a/src/client.ts +++ b/src/client.ts @@ -153,6 +153,7 @@ import { } from './resources/audit-logs/audit-logs'; import { Auth } from './resources/auth/auth'; import { + BrowserAllowlistState, BrowserCreateParams, BrowserCreateResponse, BrowserCurlParams, @@ -161,6 +162,10 @@ import { BrowserListResponse, BrowserListResponsesOffsetPagination, BrowserLoadExtensionsParams, + BrowserLocation, + BrowserLocationRequest, + BrowserLocationSource, + BrowserLocationUpdateRequest, BrowserMemory, BrowserMemoryRequest, BrowserNetworkConfig, @@ -1221,6 +1226,11 @@ export declare namespace Kernel { export { Browsers as Browsers, + type BrowserAllowlistState as BrowserAllowlistState, + type BrowserLocation as BrowserLocation, + type BrowserLocationRequest as BrowserLocationRequest, + type BrowserLocationSource as BrowserLocationSource, + type BrowserLocationUpdateRequest as BrowserLocationUpdateRequest, type BrowserMemory as BrowserMemory, type BrowserMemoryRequest as BrowserMemoryRequest, type BrowserNetworkConfig as BrowserNetworkConfig, diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts index dfa0283c..cacd2bc5 100644 --- a/src/resources/browser-pools.ts +++ b/src/resources/browser-pools.ts @@ -443,6 +443,11 @@ export interface BrowserPoolAcquireResponse { */ kiosk_mode?: boolean; + /** + * Effective browser timezone and locale with per-field provenance. + */ + location?: BrowsersAPI.BrowserLocation; + /** * Human-readable name of the browser session, if one was set at creation. */ diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index cdcee533..bdb538a4 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -346,6 +346,86 @@ export type BrowserListResponsesOffsetPagination = OffsetPagination; +export interface BrowserAllowlistState { + /** + * Opaque revision to pass as network.expected_allowlist_revision on an update. + */ + revision: string; + + /** + * Revision against which that mutation was accepted; reuse it when retrying the + * mutation. + */ + base_revision?: string; + + /** + * ID of the last conditional allowlist update saved on this browser. + */ + mutation_id?: string; +} + +export interface BrowserLocation { + /** + * Effective canonical BCP 47 formatting locale selected for the browser session. + */ + locale: string; + + /** + * Where one effective browser location field came from. `override` is set + * explicitly on the session; `metro` is the default for the browser's region. + */ + locale_source: BrowserLocationSource; + + /** + * Effective IANA timezone selected for the browser session. + */ + timezone: string; + + /** + * Where one effective browser location field came from. `override` is set + * explicitly on the session; `metro` is the default for the browser's region. + */ + timezone_source: BrowserLocationSource; +} + +export interface BrowserLocationRequest { + /** + * Session-only supported canonical BCP 47 locale override. Omit to use the default + * for the browser's region. + */ + locale?: string; + + /** + * Session-only IANA timezone override. Omit to use the default for the browser's + * region. + */ + timezone?: string; +} + +/** + * Where one effective browser location field came from. `override` is set + * explicitly on the session; `metro` is the default for the browser's region. + */ +export type BrowserLocationSource = 'override' | 'metro'; + +/** + * Omit a field to leave it unchanged, set a string override, or set null to clear + * the override and use the default for the browser's region. + */ +export interface BrowserLocationUpdateRequest { + /** + * Session-only supported canonical BCP 47 locale override. Null clears the + * override and uses the browser region's default. + */ + locale?: string | null; + + /** + * Session-only IANA timezone override. Null clears the override and uses the + * browser region's default. + */ + timezone?: string | null; +} + /** * Memory allocated to the browser session. */ @@ -388,6 +468,14 @@ export interface BrowserNetworkConfig { */ allowed_hosts?: Array; + /** + * Concurrency metadata for a browser's saved allowlist configuration. Browser + * pools omit it. This remains present after removal so an uncertain removal can be + * retried. It does not prove proxy or VM application completed. Do not include it + * in creation or pool updates. + */ + allowlist_state?: BrowserAllowlistState; + /** * Destinations the browser reaches directly through the session's own network * instead of through Kernel-managed egress — for private hosts reachable over a @@ -484,6 +572,25 @@ export interface BrowserNetworkUpdate { * to some requests. */ allowed_hosts?: Array | null; + + /** + * The network.allowlist_state.revision from the browser's last saved snapshot. + * Supply together with mutation_id to opt into conditional allowlist updates. The + * revision is checked atomically with the configuration write. A stale request + * returns 409 stale_network without changing the allowlist. A GET alone does not + * fence an earlier unfinished PATCH. + */ + expected_allowlist_revision?: string; + + /** + * A unique ID for this allowlist update, supplied together with + * expected_allowlist_revision. Reuse both values and the identical allowed_hosts + * payload when retrying an uncertain update. If it is still the current mutation, + * the retry finishes proxy and VM application without creating another revision. A + * superseded mutation returns 409 stale_network. These fields guard only + * network.allowed_hosts, not other browser update fields. + */ + mutation_id?: string; } /** @@ -805,6 +912,11 @@ export interface BrowserCreateResponse { */ kiosk_mode?: boolean; + /** + * Effective browser timezone and locale with per-field provenance. + */ + location?: BrowserLocation; + /** * Human-readable name of the browser session, if one was set at creation. */ @@ -981,6 +1093,11 @@ export interface BrowserRetrieveResponse { */ kiosk_mode?: boolean; + /** + * Effective browser timezone and locale with per-field provenance. + */ + location?: BrowserLocation; + /** * Human-readable name of the browser session, if one was set at creation. */ @@ -1157,6 +1274,11 @@ export interface BrowserUpdateResponse { */ kiosk_mode?: boolean; + /** + * Effective browser timezone and locale with per-field provenance. + */ + location?: BrowserLocation; + /** * Human-readable name of the browser session, if one was set at creation. */ @@ -1333,6 +1455,11 @@ export interface BrowserListResponse { */ kiosk_mode?: boolean; + /** + * Effective browser timezone and locale with per-field provenance. + */ + location?: BrowserLocation; + /** * Human-readable name of the browser session, if one was set at creation. */ @@ -1491,6 +1618,12 @@ export interface BrowserCreateParams { */ kiosk_mode?: boolean; + /** + * Optional session-only timezone and locale overrides. Each omitted field uses the + * default for the browser's region. start_url opens once the location applies. + */ + location?: BrowserLocationRequest; + /** * Memory for a non-GPU browser. Headless: 1GiB (default), 2GiB, or 4GiB. Headful: * 8GiB (default) or 16GiB. @@ -1736,6 +1869,17 @@ export interface BrowserUpdateParams { */ disable_default_proxy?: boolean; + /** + * Session-only timezone and locale overrides. Omit the object or a field to leave + * it unchanged; set a string to override; set null to clear that field and use the + * browser region's default. A browser that cannot change location refuses the + * request before anything changes. The location applies after the request's other + * changes, and start_url opens once it has applied. If applying it fails, the + * other changes and the saved override remain and start_url does not open; retry + * the request to apply both. + */ + location?: BrowserLocationUpdateRequest; + /** * Human-readable name for the browser session. Omit to leave unchanged, set to an * empty string to clear the name. When set, must be unique among active sessions @@ -2041,6 +2185,11 @@ Browsers.Webmcp = Webmcp; export declare namespace Browsers { export { + type BrowserAllowlistState as BrowserAllowlistState, + type BrowserLocation as BrowserLocation, + type BrowserLocationRequest as BrowserLocationRequest, + type BrowserLocationSource as BrowserLocationSource, + type BrowserLocationUpdateRequest as BrowserLocationUpdateRequest, type BrowserMemory as BrowserMemory, type BrowserMemoryRequest as BrowserMemoryRequest, type BrowserNetworkConfig as BrowserNetworkConfig, diff --git a/src/resources/browsers/index.ts b/src/resources/browsers/index.ts index 155be0d2..86903fcf 100644 --- a/src/resources/browsers/index.ts +++ b/src/resources/browsers/index.ts @@ -2,6 +2,11 @@ export { Browsers, + type BrowserAllowlistState, + type BrowserLocation, + type BrowserLocationRequest, + type BrowserLocationSource, + type BrowserLocationUpdateRequest, type BrowserMemory, type BrowserMemoryRequest, type BrowserNetworkConfig, diff --git a/src/resources/index.ts b/src/resources/index.ts index dd6978cd..07ba54ef 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -40,6 +40,11 @@ export { } from './browser-pools'; export { Browsers, + type BrowserAllowlistState, + type BrowserLocation, + type BrowserLocationRequest, + type BrowserLocationSource, + type BrowserLocationUpdateRequest, type BrowserMemory, type BrowserMemoryRequest, type BrowserNetworkConfig, diff --git a/src/resources/invocations.ts b/src/resources/invocations.ts index 266197da..f13b2596 100644 --- a/src/resources/invocations.ts +++ b/src/resources/invocations.ts @@ -527,6 +527,11 @@ export namespace InvocationListBrowsersResponse { */ kiosk_mode?: boolean; + /** + * Effective browser timezone and locale with per-field provenance. + */ + location?: BrowsersAPI.BrowserLocation; + /** * Human-readable name of the browser session, if one was set at creation. */ diff --git a/src/resources/proxies.ts b/src/resources/proxies.ts index 1f00130d..0c7809aa 100644 --- a/src/resources/proxies.ts +++ b/src/resources/proxies.ts @@ -24,32 +24,37 @@ export class Proxies extends APIResource { } /** - * Retrieve a proxy in the resolved project by ID. + * Retrieve a proxy in the resolved project by ID or exact name using the database + * collation. IDs take precedence when a value matches both an ID and a name. Proxy + * names are not unique; an ambiguous name returns a 400 response with code + * ambiguous_proxy_name. * * @example * ```ts - * const proxy = await client.proxies.retrieve('id'); + * const proxy = await client.proxies.retrieve('id_or_name'); * ``` */ - retrieve(id: string, options?: RequestOptions): APIPromise { - return this._client.get(path`/proxies/${id}`, options); + retrieve(idOrName: string, options?: RequestOptions): APIPromise { + return this._client.get(path`/proxies/${idOrName}`, options); } /** - * Update a proxy's name. Proxy names are not unique and are not ID-or-name - * addressable on this endpoint; duplicate names are allowed. Name-based - * session-create lookups can remain ambiguous until callers resolve proxies by ID - * or the API adds a stronger uniqueness contract. + * Update a proxy's name. Proxy names are not unique and duplicate names are + * allowed. * * @example * ```ts - * const proxy = await client.proxies.update('id', { + * const proxy = await client.proxies.update('id_or_name', { * name: 'my-renamed-proxy', * }); * ``` */ - update(id: string, body: ProxyUpdateParams, options?: RequestOptions): APIPromise { - return this._client.patch(path`/proxies/${id}`, { body, ...options }); + update( + idOrName: string, + body: ProxyUpdateParams, + options?: RequestOptions, + ): APIPromise { + return this._client.patch(path`/proxies/${idOrName}`, { body, ...options }); } /** @@ -78,11 +83,11 @@ export class Proxies extends APIResource { * * @example * ```ts - * await client.proxies.delete('id'); + * await client.proxies.delete('id_or_name'); * ``` */ - delete(id: string, options?: RequestOptions): APIPromise { - return this._client.delete(path`/proxies/${id}`, { + delete(idOrName: string, options?: RequestOptions): APIPromise { + return this._client.delete(path`/proxies/${idOrName}`, { ...options, headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), }); @@ -98,15 +103,15 @@ export class Proxies extends APIResource { * * @example * ```ts - * const response = await client.proxies.check('id'); + * const response = await client.proxies.check('id_or_name'); * ``` */ check( - id: string, + idOrName: string, body: ProxyCheckParams | null | undefined = {}, options?: RequestOptions, ): APIPromise { - return this._client.post(path`/proxies/${id}/check`, { body, ...options }); + return this._client.post(path`/proxies/${idOrName}/check`, { body, ...options }); } } diff --git a/src/resources/vaults/items.ts b/src/resources/vaults/items.ts index 13627f2c..9d167df9 100644 --- a/src/resources/vaults/items.ts +++ b/src/resources/vaults/items.ts @@ -368,9 +368,7 @@ export namespace CardVaultItemSpec { */ export interface LinkCardVaultItemSpec { /** - * Integer amount in minor currency units. Link Pay Token execution permits at most - * 500000; virtual-card execution permits at most 50000. Authorization rejects a - * larger amount when the checkout requires a virtual card. + * Integer amount in minor currency units, at most 50000. */ amount: number; @@ -2215,8 +2213,16 @@ export namespace VaultItem { * select a customer-owned configuration. Mode (sandbox vs live) is determined by * the selected credential; there is no per-item test flag. Without user_id, * creation returns a hosted enrollment action and Kernel polls until the user - * connects. user_id may only reference a user already enrolled by a wallet in this - * organization under the same configuration. + * connects. With a customer-owned provider_config, user_id imports an existing + * connection after verifying access with the selected credentials in their sandbox + * or live mode; no hosted enrollment is needed, even if the connected user has no + * stored cards. With Kernel-managed credentials, user_id may only reference a user + * already enrolled by a wallet in this organization under the same configuration. + * The user and configuration bindings cannot be changed after creation. Import + * validation is read-only and runs before creation: a failed validation leaves no + * wallet or reserved key, so the user_id can be corrected and retried. Concurrent + * imports of the same key may both validate, but create at most one wallet and + * connected event. */ spec: ItemsAPI.WalletVaultItemSpec; @@ -2451,8 +2457,16 @@ export namespace VaultItemOperationResponse { * select a customer-owned configuration. Mode (sandbox vs live) is determined by * the selected credential; there is no per-item test flag. Without user_id, * creation returns a hosted enrollment action and Kernel polls until the user - * connects. user_id may only reference a user already enrolled by a wallet in this - * organization under the same configuration. + * connects. With a customer-owned provider_config, user_id imports an existing + * connection after verifying access with the selected credentials in their sandbox + * or live mode; no hosted enrollment is needed, even if the connected user has no + * stored cards. With Kernel-managed credentials, user_id may only reference a user + * already enrolled by a wallet in this organization under the same configuration. + * The user and configuration bindings cannot be changed after creation. Import + * validation is read-only and runs before creation: a failed validation leaves no + * wallet or reserved key, so the user_id can be corrected and retried. Concurrent + * imports of the same key may both validate, but create at most one wallet and + * connected event. */ spec: ItemsAPI.WalletVaultItemSpec; @@ -2668,8 +2682,16 @@ export interface VaultWebmcpBinding { * select a customer-owned configuration. Mode (sandbox vs live) is determined by * the selected credential; there is no per-item test flag. Without user_id, * creation returns a hosted enrollment action and Kernel polls until the user - * connects. user_id may only reference a user already enrolled by a wallet in this - * organization under the same configuration. + * connects. With a customer-owned provider_config, user_id imports an existing + * connection after verifying access with the selected credentials in their sandbox + * or live mode; no hosted enrollment is needed, even if the connected user has no + * stored cards. With Kernel-managed credentials, user_id may only reference a user + * already enrolled by a wallet in this organization under the same configuration. + * The user and configuration bindings cannot be changed after creation. Import + * validation is read-only and runs before creation: a failed validation leaves no + * wallet or reserved key, so the user_id can be corrected and retried. Concurrent + * imports of the same key may both validate, but create at most one wallet and + * connected event. */ export type WalletVaultItemSpec = | WalletVaultItemSpec.LinkWalletVaultItemSpec @@ -2726,8 +2748,16 @@ export namespace WalletVaultItemSpec { * select a customer-owned configuration. Mode (sandbox vs live) is determined by * the selected credential; there is no per-item test flag. Without user_id, * creation returns a hosted enrollment action and Kernel polls until the user - * connects. user_id may only reference a user already enrolled by a wallet in this - * organization under the same configuration. + * connects. With a customer-owned provider_config, user_id imports an existing + * connection after verifying access with the selected credentials in their sandbox + * or live mode; no hosted enrollment is needed, even if the connected user has no + * stored cards. With Kernel-managed credentials, user_id may only reference a user + * already enrolled by a wallet in this organization under the same configuration. + * The user and configuration bindings cannot be changed after creation. Import + * validation is read-only and runs before creation: a failed validation leaves no + * wallet or reserved key, so the user_id can be corrected and retried. Concurrent + * imports of the same key may both validate, but create at most one wallet and + * connected event. */ export interface AgentCardWalletVaultItemSpec { provider: 'agentcard'; @@ -3317,8 +3347,16 @@ export declare namespace ItemUpsertParams { * credentials, or select a customer-owned configuration. Mode (sandbox vs live) is * determined by the selected credential; there is no per-item test flag. Without * user_id, creation returns a hosted enrollment action and Kernel polls until the - * user connects. user_id may only reference a user already enrolled by a wallet in - * this organization under the same configuration. + * user connects. With a customer-owned provider_config, user_id imports an + * existing connection after verifying access with the selected credentials in + * their sandbox or live mode; no hosted enrollment is needed, even if the + * connected user has no stored cards. With Kernel-managed credentials, user_id may + * only reference a user already enrolled by a wallet in this organization under + * the same configuration. The user and configuration bindings cannot be changed + * after creation. Import validation is read-only and runs before creation: a + * failed validation leaves no wallet or reserved key, so the user_id can be + * corrected and retried. Concurrent imports of the same key may both validate, but + * create at most one wallet and connected event. */ spec: | WalletVaultItemRequest.LinkWalletVaultItemRequestSpec @@ -3447,8 +3485,16 @@ export declare namespace ItemUpsertParams { * select a customer-owned configuration. Mode (sandbox vs live) is determined by * the selected credential; there is no per-item test flag. Without user_id, * creation returns a hosted enrollment action and Kernel polls until the user - * connects. user_id may only reference a user already enrolled by a wallet in this - * organization under the same configuration. + * connects. With a customer-owned provider_config, user_id imports an existing + * connection after verifying access with the selected credentials in their sandbox + * or live mode; no hosted enrollment is needed, even if the connected user has no + * stored cards. With Kernel-managed credentials, user_id may only reference a user + * already enrolled by a wallet in this organization under the same configuration. + * The user and configuration bindings cannot be changed after creation. Import + * validation is read-only and runs before creation: a failed validation leaves no + * wallet or reserved key, so the user_id can be corrected and retried. Concurrent + * imports of the same key may both validate, but create at most one wallet and + * connected event. */ export interface AgentCardWalletVaultItemSpec { provider: 'agentcard'; diff --git a/src/version.ts b/src/version.ts index d6d8f1ad..dd53b088 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.127.0'; // x-release-please-version +export const VERSION = '0.128.0'; // x-release-please-version diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 3a8ea143..3e1e28e8 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -32,6 +32,7 @@ describe('resource browsers', () => { headless: false, invocation_id: 'rr33xuugxj9h0bkf1rdt2bet', kiosk_mode: true, + location: { locale: 'en-US', timezone: 'America/Los_Angeles' }, memory: '8GiB', name: 'checkout-flow-1', network: { diff --git a/tests/api-resources/proxies.test.ts b/tests/api-resources/proxies.test.ts index 9e59c91f..8fb2ba08 100644 --- a/tests/api-resources/proxies.test.ts +++ b/tests/api-resources/proxies.test.ts @@ -33,7 +33,7 @@ describe('resource proxies', () => { // Mock server tests are disabled test.skip('retrieve', async () => { - const responsePromise = client.proxies.retrieve('id'); + const responsePromise = client.proxies.retrieve('id_or_name'); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -45,7 +45,7 @@ describe('resource proxies', () => { // Mock server tests are disabled test.skip('update: only required params', async () => { - const responsePromise = client.proxies.update('id', { name: 'my-renamed-proxy' }); + const responsePromise = client.proxies.update('id_or_name', { name: 'my-renamed-proxy' }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -57,7 +57,7 @@ describe('resource proxies', () => { // Mock server tests are disabled test.skip('update: required and optional params', async () => { - const response = await client.proxies.update('id', { name: 'my-renamed-proxy' }); + const response = await client.proxies.update('id_or_name', { name: 'my-renamed-proxy' }); }); // Mock server tests are disabled @@ -90,7 +90,7 @@ describe('resource proxies', () => { // Mock server tests are disabled test.skip('delete', async () => { - const responsePromise = client.proxies.delete('id'); + const responsePromise = client.proxies.delete('id_or_name'); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -102,7 +102,7 @@ describe('resource proxies', () => { // Mock server tests are disabled test.skip('check', async () => { - const responsePromise = client.proxies.check('id'); + const responsePromise = client.proxies.check('id_or_name'); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -116,7 +116,11 @@ describe('resource proxies', () => { test.skip('check: request options and params are passed correctly', async () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( - client.proxies.check('id', { url: 'https://example.com' }, { path: '/_stainless_unknown_path' }), + client.proxies.check( + 'id_or_name', + { url: 'https://example.com' }, + { path: '/_stainless_unknown_path' }, + ), ).rejects.toThrow(Kernel.NotFoundError); }); });