From 2cde4eb8a2469ffe31bad3462e9c3e3339d9bd7c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 02:09:37 +0000 Subject: [PATCH 1/3] fix(client): send content-type header for requests with an omitted optional body --- src/client.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/client.ts b/src/client.ts index 53d9a64..e6a4c90 100644 --- a/src/client.ts +++ b/src/client.ts @@ -880,11 +880,19 @@ export class Kernel { return () => controller.abort(); } - private buildBody({ options: { body, headers: rawHeaders } }: { options: FinalRequestOptions }): { + private buildBody({ options }: { options: FinalRequestOptions }): { bodyHeaders: HeadersLike; body: BodyInit | undefined; } { + const { body, headers: rawHeaders } = options; if (!body) { + // A resource method always passes a `body` key when its operation defines a + // request body, even if the caller omitted an optional body param. Keep the + // content-type for those, and only elide it for operations with no body at + // all (e.g. GET/DELETE). + if (body == null && 'body' in options) { + return this.#encoder({ body, headers: buildHeaders([rawHeaders]) }); + } return { bodyHeaders: undefined, body: undefined }; } const headers = buildHeaders([rawHeaders]); From bc595a51a8d1f53ec70b56ecf2fbc0ade8d471ff Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 18:55:39 +0000 Subject: [PATCH 2/3] feat: Add free-text search to remaining paginated list endpoints --- .stats.yml | 4 ++-- src/resources/auth/connections.ts | 5 +++++ src/resources/browser-pools.ts | 7 ++++++- src/resources/credential-providers.ts | 7 ++++++- src/resources/credentials.ts | 5 +++++ src/resources/deployments.ts | 5 +++++ src/resources/extensions.ts | 7 ++++++- src/resources/invocations.ts | 5 +++++ src/resources/proxies.ts | 7 ++++++- tests/api-resources/auth/connections.test.ts | 1 + tests/api-resources/browser-pools.test.ts | 9 ++++++++- tests/api-resources/credential-providers.test.ts | 9 ++++++++- tests/api-resources/credentials.test.ts | 1 + tests/api-resources/deployments.test.ts | 1 + tests/api-resources/extensions.test.ts | 9 ++++++++- tests/api-resources/invocations.test.ts | 1 + tests/api-resources/proxies.test.ts | 9 ++++++++- 17 files changed, 82 insertions(+), 10 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2919208..4424fe7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 120 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-d26459bd3514237e8d757be3cbdc76ca62f6083504b85601e57db830888964f7.yml -openapi_spec_hash: 5dd151a8099398819a97692c1c60c3c6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-cde481b2f320ce48f83db84ae96226b0e7568146c9387c4fefebf286ecb0dd0a.yml +openapi_spec_hash: 6bd86d767290fcd7e2a6aae26dff5417 config_hash: 03c7e57f268c750e2415831662e95969 diff --git a/src/resources/auth/connections.ts b/src/resources/auth/connections.ts index 3ddd508..1fd1422 100644 --- a/src/resources/auth/connections.ts +++ b/src/resources/auth/connections.ts @@ -1398,6 +1398,11 @@ export interface ConnectionListParams extends OffsetPaginationParams { * Filter by profile name */ profile_name?: string; + + /** + * Search auth connections by ID, domain, or profile name. + */ + query?: string; } export interface ConnectionLoginParams { diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts index a22174d..d403564 100644 --- a/src/resources/browser-pools.ts +++ b/src/resources/browser-pools.ts @@ -609,7 +609,12 @@ export interface BrowserPoolUpdateParams { viewport?: Shared.BrowserViewport; } -export interface BrowserPoolListParams extends OffsetPaginationParams {} +export interface BrowserPoolListParams extends OffsetPaginationParams { + /** + * Search browser pools by name or ID. + */ + query?: string; +} export interface BrowserPoolDeleteParams { /** diff --git a/src/resources/credential-providers.ts b/src/resources/credential-providers.ts index 5386ac0..601cf26 100644 --- a/src/resources/credential-providers.ts +++ b/src/resources/credential-providers.ts @@ -344,7 +344,12 @@ export interface CredentialProviderUpdateParams { priority?: number; } -export interface CredentialProviderListParams extends OffsetPaginationParams {} +export interface CredentialProviderListParams extends OffsetPaginationParams { + /** + * Search credential providers by name or ID. + */ + query?: string; +} export declare namespace CredentialProviders { export { diff --git a/src/resources/credentials.ts b/src/resources/credentials.ts index cd64d5e..1984202 100644 --- a/src/resources/credentials.ts +++ b/src/resources/credentials.ts @@ -305,6 +305,11 @@ export interface CredentialListParams extends OffsetPaginationParams { * Filter by domain */ domain?: string; + + /** + * Search credentials by name, domain, or ID. + */ + query?: string; } export declare namespace Credentials { diff --git a/src/resources/deployments.ts b/src/resources/deployments.ts index 8ea9843..a389f8b 100644 --- a/src/resources/deployments.ts +++ b/src/resources/deployments.ts @@ -469,6 +469,11 @@ export interface DeploymentListParams extends OffsetPaginationParams { * Filter results by application version. Requires app_name to be set. */ app_version?: string; + + /** + * Search deployments by ID or app name. + */ + query?: string; } export interface DeploymentFollowParams { diff --git a/src/resources/extensions.ts b/src/resources/extensions.ts index 0afbdd5..c1fff54 100644 --- a/src/resources/extensions.ts +++ b/src/resources/extensions.ts @@ -177,7 +177,12 @@ export interface ExtensionUploadResponse { name?: string | null; } -export interface ExtensionListParams extends OffsetPaginationParams {} +export interface ExtensionListParams extends OffsetPaginationParams { + /** + * Search extensions by name or ID. + */ + query?: string; +} export interface ExtensionDownloadFromChromeStoreParams { /** diff --git a/src/resources/invocations.ts b/src/resources/invocations.ts index ce73196..381ff1b 100644 --- a/src/resources/invocations.ts +++ b/src/resources/invocations.ts @@ -613,6 +613,11 @@ export interface InvocationListParams extends OffsetPaginationParams { */ deployment_id?: string; + /** + * Search invocations by ID, app name, or action name. + */ + query?: string; + /** * Show invocations that have started since the given time (RFC timestamps or * durations like 5m). diff --git a/src/resources/proxies.ts b/src/resources/proxies.ts index 274a050..3dda98f 100644 --- a/src/resources/proxies.ts +++ b/src/resources/proxies.ts @@ -824,7 +824,12 @@ export namespace ProxyCreateParams { } } -export interface ProxyListParams extends OffsetPaginationParams {} +export interface ProxyListParams extends OffsetPaginationParams { + /** + * Search proxies by name, host, IP address, or ID. + */ + query?: string; +} export interface ProxyCheckParams { /** diff --git a/tests/api-resources/auth/connections.test.ts b/tests/api-resources/auth/connections.test.ts index c03afb3..ff94370 100644 --- a/tests/api-resources/auth/connections.test.ts +++ b/tests/api-resources/auth/connections.test.ts @@ -91,6 +91,7 @@ describe('resource connections', () => { limit: 100, offset: 0, profile_name: 'profile_name', + query: 'query', }, { path: '/_stainless_unknown_path' }, ), diff --git a/tests/api-resources/browser-pools.test.ts b/tests/api-resources/browser-pools.test.ts index a7c39c3..3d8e3eb 100644 --- a/tests/api-resources/browser-pools.test.ts +++ b/tests/api-resources/browser-pools.test.ts @@ -87,7 +87,14 @@ describe('resource browserPools', () => { test.skip('list: 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.browserPools.list({ limit: 1, offset: 0 }, { path: '/_stainless_unknown_path' }), + client.browserPools.list( + { + limit: 1, + offset: 0, + query: 'query', + }, + { path: '/_stainless_unknown_path' }, + ), ).rejects.toThrow(Kernel.NotFoundError); }); diff --git a/tests/api-resources/credential-providers.test.ts b/tests/api-resources/credential-providers.test.ts index ae64be3..d535632 100644 --- a/tests/api-resources/credential-providers.test.ts +++ b/tests/api-resources/credential-providers.test.ts @@ -74,7 +74,14 @@ describe('resource credentialProviders', () => { test.skip('list: 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.credentialProviders.list({ limit: 1, offset: 0 }, { path: '/_stainless_unknown_path' }), + client.credentialProviders.list( + { + limit: 1, + offset: 0, + query: 'query', + }, + { path: '/_stainless_unknown_path' }, + ), ).rejects.toThrow(Kernel.NotFoundError); }); diff --git a/tests/api-resources/credentials.test.ts b/tests/api-resources/credentials.test.ts index 11ab0da..5bd00bb 100644 --- a/tests/api-resources/credentials.test.ts +++ b/tests/api-resources/credentials.test.ts @@ -80,6 +80,7 @@ describe('resource credentials', () => { domain: 'domain', limit: 100, offset: 0, + query: 'query', }, { path: '/_stainless_unknown_path' }, ), diff --git a/tests/api-resources/deployments.test.ts b/tests/api-resources/deployments.test.ts index 3405cc8..8d7901e 100644 --- a/tests/api-resources/deployments.test.ts +++ b/tests/api-resources/deployments.test.ts @@ -54,6 +54,7 @@ describe('resource deployments', () => { app_version: 'app_version', limit: 1, offset: 0, + query: 'query', }, { path: '/_stainless_unknown_path' }, ), diff --git a/tests/api-resources/extensions.test.ts b/tests/api-resources/extensions.test.ts index 8f03039..431d43d 100644 --- a/tests/api-resources/extensions.test.ts +++ b/tests/api-resources/extensions.test.ts @@ -24,7 +24,14 @@ describe('resource extensions', () => { test.skip('list: 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.extensions.list({ limit: 1, offset: 0 }, { path: '/_stainless_unknown_path' }), + client.extensions.list( + { + limit: 1, + offset: 0, + query: 'query', + }, + { path: '/_stainless_unknown_path' }, + ), ).rejects.toThrow(Kernel.NotFoundError); }); diff --git a/tests/api-resources/invocations.test.ts b/tests/api-resources/invocations.test.ts index d1915b2..5feab27 100644 --- a/tests/api-resources/invocations.test.ts +++ b/tests/api-resources/invocations.test.ts @@ -88,6 +88,7 @@ describe('resource invocations', () => { deployment_id: 'deployment_id', limit: 1, offset: 0, + query: 'query', since: '2025-06-20T12:00:00Z', status: 'queued', version: 'version', diff --git a/tests/api-resources/proxies.test.ts b/tests/api-resources/proxies.test.ts index f4e09d9..e64b274 100644 --- a/tests/api-resources/proxies.test.ts +++ b/tests/api-resources/proxies.test.ts @@ -59,7 +59,14 @@ describe('resource proxies', () => { test.skip('list: 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.list({ limit: 1, offset: 0 }, { path: '/_stainless_unknown_path' }), + client.proxies.list( + { + limit: 1, + offset: 0, + query: 'query', + }, + { path: '/_stainless_unknown_path' }, + ), ).rejects.toThrow(Kernel.NotFoundError); }); From 714b18291ba7d040528d3f92723788d8ec82b7c2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2026 18:56:31 +0000 Subject: [PATCH 3/3] release: 0.69.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 13 +++++++++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e5a17c2..93e2be7 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.68.0" + ".": "0.69.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ef0b92..0a22e07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.69.0 (2026-06-18) + +Full Changelog: [v0.68.0...v0.69.0](https://github.com/kernel/kernel-node-sdk/compare/v0.68.0...v0.69.0) + +### Features + +* Add free-text search to remaining paginated list endpoints ([bc595a5](https://github.com/kernel/kernel-node-sdk/commit/bc595a51a8d1f53ec70b56ecf2fbc0ade8d471ff)) + + +### Bug Fixes + +* **client:** send content-type header for requests with an omitted optional body ([2cde4eb](https://github.com/kernel/kernel-node-sdk/commit/2cde4eb8a2469ffe31bad3462e9c3e3339d9bd7c)) + ## 0.68.0 (2026-06-15) Full Changelog: [v0.67.0...v0.68.0](https://github.com/kernel/kernel-node-sdk/compare/v0.67.0...v0.68.0) diff --git a/package.json b/package.json index 6e3d5cd..78cc415 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.68.0", + "version": "0.69.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 71e7340..f88b6d2 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.68.0'; // x-release-please-version +export const VERSION = '0.69.0'; // x-release-please-version