From d4e30a73767753c27cbc61651b3644a5765de537 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 17 Jan 2026 21:34:41 +0000 Subject: [PATCH 1/7] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2857ba8..8e09c0a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-fc2c80b398a8dd511010ae7cda5e21c353e388ee130aa288974b47af4208b5b8.yml -openapi_spec_hash: 5e06586dbbb9fce12b907f4e32497006 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-1e490dbef30dfa53ccba72524fcba4079f244f2530a4f770c00f8fee707eaa72.yml +openapi_spec_hash: 1fd15429610959f19aed6d3cb170ab9e config_hash: cc7fdd701d995d4b3456d77041c604cf From 7df0d1b630bd87d6a8fc1999d33214f9434646fb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 18 Jan 2026 22:57:05 +0000 Subject: [PATCH 2/7] feat(dashboard): add browser replays support for past browsers --- .stats.yml | 4 +-- api.md | 2 +- src/client.ts | 2 ++ src/resources/browsers/browsers.ts | 30 +++++++++++++++---- src/resources/browsers/index.ts | 1 + src/resources/index.ts | 1 + tests/api-resources/browsers/browsers.test.ts | 13 ++++++++ 7 files changed, 44 insertions(+), 9 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8e09c0a..37fa5b7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-1e490dbef30dfa53ccba72524fcba4079f244f2530a4f770c00f8fee707eaa72.yml -openapi_spec_hash: 1fd15429610959f19aed6d3cb170ab9e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-68729f2ff40476377ead9019c18ea140fc4efbc2e68d7c4fc323bd61ae81f768.yml +openapi_spec_hash: 9eec61481f9059b5fedc13abc3e39338 config_hash: cc7fdd701d995d4b3456d77041c604cf diff --git a/api.md b/api.md index 45e2b0d..d86a880 100644 --- a/api.md +++ b/api.md @@ -73,7 +73,7 @@ Types: Methods: - client.browsers.create({ ...params }) -> BrowserCreateResponse -- client.browsers.retrieve(id) -> BrowserRetrieveResponse +- client.browsers.retrieve(id, { ...params }) -> BrowserRetrieveResponse - client.browsers.update(id, { ...params }) -> BrowserUpdateResponse - client.browsers.list({ ...params }) -> BrowserListResponsesOffsetPagination - client.browsers.delete({ ...params }) -> void diff --git a/src/client.ts b/src/client.ts index 581c7fd..24808b4 100644 --- a/src/client.ts +++ b/src/client.ts @@ -94,6 +94,7 @@ import { BrowserListResponsesOffsetPagination, BrowserLoadExtensionsParams, BrowserPersistence, + BrowserRetrieveParams, BrowserRetrieveResponse, BrowserUpdateParams, BrowserUpdateResponse, @@ -939,6 +940,7 @@ export declare namespace Kernel { type BrowserListResponse as BrowserListResponse, type BrowserListResponsesOffsetPagination as BrowserListResponsesOffsetPagination, type BrowserCreateParams as BrowserCreateParams, + type BrowserRetrieveParams as BrowserRetrieveParams, type BrowserUpdateParams as BrowserUpdateParams, type BrowserListParams as BrowserListParams, type BrowserDeleteParams as BrowserDeleteParams, diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index a745380..040c783 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -105,8 +105,12 @@ export class Browsers extends APIResource { * ); * ``` */ - retrieve(id: string, options?: RequestOptions): APIPromise { - return this._client.get(path`/browsers/${id}`, options); + retrieve( + id: string, + query: BrowserRetrieveParams | null | undefined = {}, + options?: RequestOptions, + ): APIPromise { + return this._client.get(path`/browsers/${id}`, { query, ...options }); } /** @@ -124,8 +128,8 @@ export class Browsers extends APIResource { } /** - * List all browser sessions with pagination support. Use include_deleted=true to - * include soft-deleted sessions in the results. + * List all browser sessions with pagination support. Use status parameter to + * filter by session state. * * @example * ```ts @@ -618,6 +622,13 @@ export interface BrowserCreateParams { viewport?: Shared.BrowserViewport; } +export interface BrowserRetrieveParams { + /** + * When true, includes soft-deleted browser sessions in the lookup. + */ + include_deleted?: boolean; +} + export interface BrowserUpdateParams { /** * ID of the proxy to use. Omit to leave unchanged, set to empty string to remove @@ -628,10 +639,16 @@ export interface BrowserUpdateParams { export interface BrowserListParams extends OffsetPaginationParams { /** - * When true, includes soft-deleted browser sessions in the results alongside - * active sessions. + * Deprecated: Use status=all instead. When true, includes soft-deleted browser + * sessions in the results alongside active sessions. */ include_deleted?: boolean; + + /** + * Filter sessions by status. "active" returns only active sessions (default), + * "deleted" returns only soft-deleted sessions, "all" returns both. + */ + status?: 'active' | 'deleted' | 'all'; } export interface BrowserDeleteParams { @@ -680,6 +697,7 @@ export declare namespace Browsers { type BrowserListResponse as BrowserListResponse, type BrowserListResponsesOffsetPagination as BrowserListResponsesOffsetPagination, type BrowserCreateParams as BrowserCreateParams, + type BrowserRetrieveParams as BrowserRetrieveParams, type BrowserUpdateParams as BrowserUpdateParams, type BrowserListParams as BrowserListParams, type BrowserDeleteParams as BrowserDeleteParams, diff --git a/src/resources/browsers/index.ts b/src/resources/browsers/index.ts index d00c32c..046c1b2 100644 --- a/src/resources/browsers/index.ts +++ b/src/resources/browsers/index.ts @@ -9,6 +9,7 @@ export { type BrowserUpdateResponse, type BrowserListResponse, type BrowserCreateParams, + type BrowserRetrieveParams, type BrowserUpdateParams, type BrowserListParams, type BrowserDeleteParams, diff --git a/src/resources/index.ts b/src/resources/index.ts index e95e4ae..1b7282a 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -28,6 +28,7 @@ export { type BrowserUpdateResponse, type BrowserListResponse, type BrowserCreateParams, + type BrowserRetrieveParams, type BrowserUpdateParams, type BrowserListParams, type BrowserDeleteParams, diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index f6d629d..51fecec 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('retrieve: 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.browsers.retrieve( + 'htzv5orfit78e1m2biiifpbv', + { include_deleted: true }, + { path: '/_stainless_unknown_path' }, + ), + ).rejects.toThrow(Kernel.NotFoundError); + }); + // Prism tests are disabled test.skip('update', async () => { const responsePromise = client.browsers.update('htzv5orfit78e1m2biiifpbv', {}); @@ -95,6 +107,7 @@ describe('resource browsers', () => { include_deleted: true, limit: 1, offset: 0, + status: 'active', }, { path: '/_stainless_unknown_path' }, ), From e4935e3ac62e65170670b93fc725353dc3953f5b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 18:47:35 +0000 Subject: [PATCH 3/7] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 37fa5b7..9ec6fcc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-68729f2ff40476377ead9019c18ea140fc4efbc2e68d7c4fc323bd61ae81f768.yml -openapi_spec_hash: 9eec61481f9059b5fedc13abc3e39338 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-59d2925a3cb93809cc762a3ac350691b365898e284f2c66a5999b9a6a37a35e5.yml +openapi_spec_hash: dfcb0a49e657426d0c0f44cfa3e89430 config_hash: cc7fdd701d995d4b3456d77041c604cf From 94750833811e4842b29b7be918894e1d1458067a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 21 Jan 2026 01:00:05 +0000 Subject: [PATCH 4/7] feat: Update browser pool org limits --- .stats.yml | 4 ++-- src/resources/browser-pools.ts | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9ec6fcc..996826a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-59d2925a3cb93809cc762a3ac350691b365898e284f2c66a5999b9a6a37a35e5.yml -openapi_spec_hash: dfcb0a49e657426d0c0f44cfa3e89430 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-97558c7b5f2714e629041ff892cdabef76c4ab214b5f908ba8b36d507eac5260.yml +openapi_spec_hash: 3464d532154863ca17b82082451b9faf config_hash: cc7fdd701d995d4b3456d77041c604cf diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts index 9e67f7c..b05ad66 100644 --- a/src/resources/browser-pools.ts +++ b/src/resources/browser-pools.ts @@ -181,7 +181,9 @@ export namespace BrowserPool { */ export interface BrowserPoolConfig { /** - * Number of browsers to create in the pool + * Number of browsers to maintain in the pool. The maximum size is determined by + * your organization's pooled sessions limit (the sum of all pool sizes cannot + * exceed your limit). */ size: number; @@ -330,7 +332,9 @@ export interface BrowserPoolAcquireResponse { export interface BrowserPoolCreateParams { /** - * Number of browsers to create in the pool + * Number of browsers to maintain in the pool. The maximum size is determined by + * your organization's pooled sessions limit (the sum of all pool sizes cannot + * exceed your limit). */ size: number; @@ -400,7 +404,9 @@ export interface BrowserPoolCreateParams { export interface BrowserPoolUpdateParams { /** - * Number of browsers to create in the pool + * Number of browsers to maintain in the pool. The maximum size is determined by + * your organization's pooled sessions limit (the sum of all pool sizes cannot + * exceed your limit). */ size: number; From 655472432e7241daf996b406ef842c4d63e0f7a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 21 Jan 2026 03:29:52 +0000 Subject: [PATCH 5/7] =?UTF-8?q?refactor(agentauth):=20enhance=20discover?= =?UTF-8?q?=20and=20submit=20modules=20with=20improve=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .stats.yml | 4 ++-- src/resources/agents/auth/auth.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 996826a..480b78b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-97558c7b5f2714e629041ff892cdabef76c4ab214b5f908ba8b36d507eac5260.yml -openapi_spec_hash: 3464d532154863ca17b82082451b9faf +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-714affeb2859c03a71d35708b6704b1750a1712738a130f3363ae67b20d751d9.yml +openapi_spec_hash: 9d2b9358f0f640ecd1eacd15b70dd361 config_hash: cc7fdd701d995d4b3456d77041c604cf diff --git a/src/resources/agents/auth/auth.ts b/src/resources/agents/auth/auth.ts index ac69356..570308e 100644 --- a/src/resources/agents/auth/auth.ts +++ b/src/resources/agents/auth/auth.ts @@ -166,6 +166,11 @@ export interface AgentAuthInvocationResponse { */ pending_sso_buttons?: Array | null; + /** + * SSO provider being used for authentication (e.g., google, github, microsoft) + */ + sso_provider?: string | null; + /** * Names of fields that have been submitted (present when step=submitting or later) */ From b0fb58ddd6adb4ac70cd981557433a4af9f9675c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 21 Jan 2026 04:39:11 +0000 Subject: [PATCH 6/7] feat(agent-auth): add 1Password integration for credential providers --- .stats.yml | 8 +- api.md | 19 ++ src/client.ts | 23 ++ src/resources/credential-providers.ts | 265 ++++++++++++++++++ src/resources/index.ts | 10 + .../credential-providers.test.ts | 94 +++++++ 6 files changed, 415 insertions(+), 4 deletions(-) create mode 100644 src/resources/credential-providers.ts create mode 100644 tests/api-resources/credential-providers.test.ts diff --git a/.stats.yml b/.stats.yml index 480b78b..50043a4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 91 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-714affeb2859c03a71d35708b6704b1750a1712738a130f3363ae67b20d751d9.yml -openapi_spec_hash: 9d2b9358f0f640ecd1eacd15b70dd361 -config_hash: cc7fdd701d995d4b3456d77041c604cf +configured_endpoints: 97 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-7427d4bcaba5cad07910da7a222bdd2650b5280e6b889132ed38d230adafb8a5.yml +openapi_spec_hash: e8e3dc1ae54666d544d1fc848b25e7cf +config_hash: b470456b217bb9502f5212311d395a6f diff --git a/api.md b/api.md index d86a880..3b123d3 100644 --- a/api.md +++ b/api.md @@ -300,3 +300,22 @@ Methods: - client.credentials.list({ ...params }) -> CredentialsOffsetPagination - client.credentials.delete(idOrName) -> void - client.credentials.totpCode(idOrName) -> CredentialTotpCodeResponse + +# CredentialProviders + +Types: + +- CreateCredentialProviderRequest +- CredentialProvider +- CredentialProviderTestResult +- UpdateCredentialProviderRequest +- CredentialProviderListResponse + +Methods: + +- client.credentialProviders.create({ ...params }) -> CredentialProvider +- client.credentialProviders.retrieve(id) -> CredentialProvider +- client.credentialProviders.update(id, { ...params }) -> CredentialProvider +- client.credentialProviders.list() -> CredentialProviderListResponse +- client.credentialProviders.delete(id) -> void +- client.credentialProviders.test(id) -> CredentialProviderTestResult diff --git a/src/client.ts b/src/client.ts index 24808b4..63de439 100644 --- a/src/client.ts +++ b/src/client.ts @@ -30,6 +30,16 @@ import { BrowserPoolUpdateParams, BrowserPools, } from './resources/browser-pools'; +import { + CreateCredentialProviderRequest, + CredentialProvider, + CredentialProviderCreateParams, + CredentialProviderListResponse, + CredentialProviderTestResult, + CredentialProviderUpdateParams, + CredentialProviders, + UpdateCredentialProviderRequest, +} from './resources/credential-providers'; import { CreateCredentialRequest, Credential, @@ -873,6 +883,7 @@ export class Kernel { browserPools: API.BrowserPools = new API.BrowserPools(this); agents: API.Agents = new API.Agents(this); credentials: API.Credentials = new API.Credentials(this); + credentialProviders: API.CredentialProviders = new API.CredentialProviders(this); } Kernel.Deployments = Deployments; @@ -885,6 +896,7 @@ Kernel.Extensions = Extensions; Kernel.BrowserPools = BrowserPools; Kernel.Agents = Agents; Kernel.Credentials = Credentials; +Kernel.CredentialProviders = CredentialProviders; export declare namespace Kernel { export type RequestOptions = Opts.RequestOptions; @@ -996,6 +1008,17 @@ export declare namespace Kernel { type CredentialListParams as CredentialListParams, }; + export { + CredentialProviders as CredentialProviders, + type CreateCredentialProviderRequest as CreateCredentialProviderRequest, + type CredentialProvider as CredentialProvider, + type CredentialProviderTestResult as CredentialProviderTestResult, + type UpdateCredentialProviderRequest as UpdateCredentialProviderRequest, + type CredentialProviderListResponse as CredentialProviderListResponse, + type CredentialProviderCreateParams as CredentialProviderCreateParams, + type CredentialProviderUpdateParams as CredentialProviderUpdateParams, + }; + export type AppAction = API.AppAction; export type BrowserExtension = API.BrowserExtension; export type BrowserProfile = API.BrowserProfile; diff --git a/src/resources/credential-providers.ts b/src/resources/credential-providers.ts new file mode 100644 index 0000000..596e9e5 --- /dev/null +++ b/src/resources/credential-providers.ts @@ -0,0 +1,265 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import { APIResource } from '../core/resource'; +import { APIPromise } from '../core/api-promise'; +import { buildHeaders } from '../internal/headers'; +import { RequestOptions } from '../internal/request-options'; +import { path } from '../internal/utils/path'; + +export class CredentialProviders extends APIResource { + /** + * Configure an external credential provider (e.g., 1Password) for automatic + * credential lookup. + * + * @example + * ```ts + * const credentialProvider = + * await client.credentialProviders.create({ + * token: 'ops_eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...', + * provider_type: 'onepassword', + * }); + * ``` + */ + create(body: CredentialProviderCreateParams, options?: RequestOptions): APIPromise { + return this._client.post('/org/credential-providers', { body, ...options }); + } + + /** + * Retrieve a credential provider by its ID. + * + * @example + * ```ts + * const credentialProvider = + * await client.credentialProviders.retrieve('id'); + * ``` + */ + retrieve(id: string, options?: RequestOptions): APIPromise { + return this._client.get(path`/org/credential-providers/${id}`, options); + } + + /** + * Update a credential provider's configuration. + * + * @example + * ```ts + * const credentialProvider = + * await client.credentialProviders.update('id'); + * ``` + */ + update( + id: string, + body: CredentialProviderUpdateParams, + options?: RequestOptions, + ): APIPromise { + return this._client.patch(path`/org/credential-providers/${id}`, { body, ...options }); + } + + /** + * List external credential providers configured for the organization. + * + * @example + * ```ts + * const credentialProviders = + * await client.credentialProviders.list(); + * ``` + */ + list(options?: RequestOptions): APIPromise { + return this._client.get('/org/credential-providers', options); + } + + /** + * Delete a credential provider by its ID. + * + * @example + * ```ts + * await client.credentialProviders.delete('id'); + * ``` + */ + delete(id: string, options?: RequestOptions): APIPromise { + return this._client.delete(path`/org/credential-providers/${id}`, { + ...options, + headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), + }); + } + + /** + * Validate the credential provider's token and list accessible vaults. + * + * @example + * ```ts + * const credentialProviderTestResult = + * await client.credentialProviders.test('id'); + * ``` + */ + test(id: string, options?: RequestOptions): APIPromise { + return this._client.post(path`/org/credential-providers/${id}/test`, options); + } +} + +/** + * Request to create an external credential provider + */ +export interface CreateCredentialProviderRequest { + /** + * Service account token for the provider (e.g., 1Password service account token) + */ + token: string; + + /** + * Type of credential provider + */ + provider_type: 'onepassword'; + + /** + * How long to cache credential lists (default 300 seconds) + */ + cache_ttl_seconds?: number; +} + +/** + * An external credential provider (e.g., 1Password) for automatic credential + * lookup + */ +export interface CredentialProvider { + /** + * Unique identifier for the credential provider + */ + id: string; + + /** + * When the credential provider was created + */ + created_at: string; + + /** + * Whether the provider is enabled for credential lookups + */ + enabled: boolean; + + /** + * Priority order for credential lookups (lower numbers are checked first) + */ + priority: number; + + /** + * Type of credential provider + */ + provider_type: 'onepassword'; + + /** + * When the credential provider was last updated + */ + updated_at: string; +} + +/** + * Result of testing a credential provider connection + */ +export interface CredentialProviderTestResult { + /** + * Whether the connection test was successful + */ + success: boolean; + + /** + * List of vaults accessible by the service account + */ + vaults: Array; + + /** + * Error message if the test failed + */ + error?: string; +} + +export namespace CredentialProviderTestResult { + export interface Vault { + /** + * Vault ID + */ + id: string; + + /** + * Vault name + */ + name: string; + } +} + +/** + * Request to update a credential provider + */ +export interface UpdateCredentialProviderRequest { + /** + * New service account token (to rotate credentials) + */ + token?: string; + + /** + * How long to cache credential lists + */ + cache_ttl_seconds?: number; + + /** + * Whether the provider is enabled for credential lookups + */ + enabled?: boolean; + + /** + * Priority order for credential lookups (lower numbers are checked first) + */ + priority?: number; +} + +export type CredentialProviderListResponse = Array; + +export interface CredentialProviderCreateParams { + /** + * Service account token for the provider (e.g., 1Password service account token) + */ + token: string; + + /** + * Type of credential provider + */ + provider_type: 'onepassword'; + + /** + * How long to cache credential lists (default 300 seconds) + */ + cache_ttl_seconds?: number; +} + +export interface CredentialProviderUpdateParams { + /** + * New service account token (to rotate credentials) + */ + token?: string; + + /** + * How long to cache credential lists + */ + cache_ttl_seconds?: number; + + /** + * Whether the provider is enabled for credential lookups + */ + enabled?: boolean; + + /** + * Priority order for credential lookups (lower numbers are checked first) + */ + priority?: number; +} + +export declare namespace CredentialProviders { + export { + type CreateCredentialProviderRequest as CreateCredentialProviderRequest, + type CredentialProvider as CredentialProvider, + type CredentialProviderTestResult as CredentialProviderTestResult, + type UpdateCredentialProviderRequest as UpdateCredentialProviderRequest, + type CredentialProviderListResponse as CredentialProviderListResponse, + type CredentialProviderCreateParams as CredentialProviderCreateParams, + type CredentialProviderUpdateParams as CredentialProviderUpdateParams, + }; +} diff --git a/src/resources/index.ts b/src/resources/index.ts index 1b7282a..a3475dd 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -35,6 +35,16 @@ export { type BrowserLoadExtensionsParams, type BrowserListResponsesOffsetPagination, } from './browsers/browsers'; +export { + CredentialProviders, + type CreateCredentialProviderRequest, + type CredentialProvider, + type CredentialProviderTestResult, + type UpdateCredentialProviderRequest, + type CredentialProviderListResponse, + type CredentialProviderCreateParams, + type CredentialProviderUpdateParams, +} from './credential-providers'; export { Credentials, type CreateCredentialRequest, diff --git a/tests/api-resources/credential-providers.test.ts b/tests/api-resources/credential-providers.test.ts new file mode 100644 index 0000000..5a20da8 --- /dev/null +++ b/tests/api-resources/credential-providers.test.ts @@ -0,0 +1,94 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import Kernel from '@onkernel/sdk'; + +const client = new Kernel({ + apiKey: 'My API Key', + baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', +}); + +describe('resource credentialProviders', () => { + // Prism tests are disabled + test.skip('create: only required params', async () => { + const responsePromise = client.credentialProviders.create({ + token: 'ops_eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...', + provider_type: 'onepassword', + }); + 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('create: required and optional params', async () => { + const response = await client.credentialProviders.create({ + token: 'ops_eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...', + provider_type: 'onepassword', + cache_ttl_seconds: 300, + }); + }); + + // Prism tests are disabled + test.skip('retrieve', async () => { + const responsePromise = client.credentialProviders.retrieve('id'); + 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('update', async () => { + const responsePromise = client.credentialProviders.update('id', {}); + 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.credentialProviders.list(); + 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('delete', async () => { + const responsePromise = client.credentialProviders.delete('id'); + 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('test', async () => { + const responsePromise = client.credentialProviders.test('id'); + 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); + }); +}); From d3a60b6b29202504edb8e72bf5197fe916d094ee Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 21 Jan 2026 04:39:30 +0000 Subject: [PATCH 7/7] release: 0.27.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c84411f..2b11449 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.26.0" + ".": "0.27.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index ea2fc14..b597d41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.27.0 (2026-01-21) + +Full Changelog: [v0.26.0...v0.27.0](https://github.com/kernel/kernel-node-sdk/compare/v0.26.0...v0.27.0) + +### Features + +* **agent-auth:** add 1Password integration for credential providers ([b0fb58d](https://github.com/kernel/kernel-node-sdk/commit/b0fb58ddd6adb4ac70cd981557433a4af9f9675c)) +* **dashboard:** add browser replays support for past browsers ([7df0d1b](https://github.com/kernel/kernel-node-sdk/commit/7df0d1b630bd87d6a8fc1999d33214f9434646fb)) +* Update browser pool org limits ([9475083](https://github.com/kernel/kernel-node-sdk/commit/94750833811e4842b29b7be918894e1d1458067a)) + + +### Refactors + +* **agentauth:** enhance discover and submit modules with improve… ([6554724](https://github.com/kernel/kernel-node-sdk/commit/655472432e7241daf996b406ef842c4d63e0f7a2)) + ## 0.26.0 (2026-01-17) Full Changelog: [v0.26.0...v0.26.0](https://github.com/kernel/kernel-node-sdk/compare/v0.26.0...v0.26.0) diff --git a/package.json b/package.json index 76168f1..5eb7b3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.26.0", + "version": "0.27.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 aa25151..288031c 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.26.0'; // x-release-please-version +export const VERSION = '0.27.0'; // x-release-please-version