From 32f4b9747b9ba317b41d1a89a5162b6e81d61835 Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2026 23:56:24 +0000 Subject: [PATCH 1/2] feat: Rename the site configs API to config registry Stainless-Generated-From: 1ddddde6b916d90fee80c0786e0a7b13b2bad24b --- api.md | 45 ++--- src/client.ts | 60 +++---- src/resources/config-registry.ts | 3 + src/resources/config-registry/analyses.ts | 63 +++++++ .../config-registry.ts} | 167 ++++++++---------- src/resources/config-registry/index.ts | 25 +++ src/resources/index.ts | 45 +++-- .../config-registry/analyses.test.ts | 49 +++++ .../config-registry.test.ts} | 47 +---- 9 files changed, 300 insertions(+), 204 deletions(-) create mode 100644 src/resources/config-registry.ts create mode 100644 src/resources/config-registry/analyses.ts rename src/resources/{site-configs.ts => config-registry/config-registry.ts} (77%) create mode 100644 src/resources/config-registry/index.ts create mode 100644 tests/api-resources/config-registry/analyses.test.ts rename tests/api-resources/{site-configs.test.ts => config-registry/config-registry.test.ts} (57%) diff --git a/api.md b/api.md index 79fefcce..86519a7f 100644 --- a/api.md +++ b/api.md @@ -62,32 +62,37 @@ Methods: - client.invocations.follow(id, { ...params }) -> InvocationFollowResponse - client.invocations.listBrowsers(id) -> InvocationListBrowsersResponse -# SiteConfigs +# ConfigRegistry Types: -- Analysis -- AnalysisSummary -- Browser -- Evidence -- LookupRequest -- LookupResponse -- NoRecommendation -- Proxy -- Recommendation -- RecommendationResult -- RecommendationSummary -- ResolveRequest -- SiteConfigResponse -- Target +- Analysis +- AnalysisSummary +- Browser +- ConfigRegistryResponse +- Evidence +- LookupRequest +- LookupResponse +- NoRecommendation +- Proxy +- Recommendation +- RecommendationResult +- RecommendationSummary +- ResolveRequest +- Target Methods: -- client.siteConfigs.retrieve(id) -> SiteConfigResponse -- client.siteConfigs.list({ ...params }) -> AnalysisSummariesOffsetPagination -- client.siteConfigs.listRecommendations({ ...params }) -> RecommendationSummariesOffsetPagination -- client.siteConfigs.lookup({ ...params }) -> LookupResponse -- client.siteConfigs.resolve({ ...params }) -> SiteConfigResponse +- client.configRegistry.list({ ...params }) -> RecommendationSummariesOffsetPagination +- client.configRegistry.lookup({ ...params }) -> LookupResponse +- client.configRegistry.resolve({ ...params }) -> ConfigRegistryResponse + +## Analyses + +Methods: + +- client.configRegistry.analyses.retrieve(id) -> ConfigRegistryResponse +- client.configRegistry.analyses.list({ ...params }) -> AnalysisSummariesOffsetPagination # Browsers diff --git a/src/client.ts b/src/client.ts index f2e7e003..c66a88d0 100644 --- a/src/client.ts +++ b/src/client.ts @@ -136,29 +136,6 @@ import { ProxyUpdateParams, ProxyUpdateResponse, } from './resources/proxies'; -import { - Analysis, - AnalysisSummariesOffsetPagination, - AnalysisSummary, - Browser, - Evidence, - LookupRequest, - LookupResponse, - NoRecommendation, - Proxy, - Recommendation, - RecommendationResult, - RecommendationSummariesOffsetPagination, - RecommendationSummary, - ResolveRequest, - SiteConfigListParams, - SiteConfigListRecommendationsParams, - SiteConfigLookupParams, - SiteConfigResolveParams, - SiteConfigResponse, - SiteConfigs, - Target, -} from './resources/site-configs'; import { AuditLogEntriesPageTokenPagination, AuditLogEntry, @@ -192,6 +169,27 @@ import { Profile, Tags, } from './resources/browsers/browsers'; +import { + Analysis, + AnalysisSummary, + Browser, + ConfigRegistry, + ConfigRegistryListParams, + ConfigRegistryLookupParams, + ConfigRegistryResolveParams, + ConfigRegistryResponse, + Evidence, + LookupRequest, + LookupResponse, + NoRecommendation, + Proxy, + Recommendation, + RecommendationResult, + RecommendationSummariesOffsetPagination, + RecommendationSummary, + ResolveRequest, + Target, +} from './resources/config-registry/config-registry'; import { Organization } from './resources/organization/organization'; import { CreateProjectRequest, @@ -1038,7 +1036,7 @@ export class Kernel { /** * Resolve browser and proxy recommendations for bot-protected sites. */ - siteConfigs: API.SiteConfigs = new API.SiteConfigs(this); + configRegistry: API.ConfigRegistry = new API.ConfigRegistry(this); /** * Create and manage browser sessions. */ @@ -1090,7 +1088,7 @@ export class Kernel { Kernel.Deployments = Deployments; Kernel.Apps = Apps; Kernel.Invocations = Invocations; -Kernel.SiteConfigs = SiteConfigs; +Kernel.ConfigRegistry = ConfigRegistry; Kernel.Browsers = Browsers; Kernel.Profiles = Profiles; Kernel.Auth = Auth; @@ -1157,10 +1155,11 @@ export declare namespace Kernel { }; export { - SiteConfigs as SiteConfigs, + ConfigRegistry as ConfigRegistry, type Analysis as Analysis, type AnalysisSummary as AnalysisSummary, type Browser as Browser, + type ConfigRegistryResponse as ConfigRegistryResponse, type Evidence as Evidence, type LookupRequest as LookupRequest, type LookupResponse as LookupResponse, @@ -1170,14 +1169,11 @@ export declare namespace Kernel { type RecommendationResult as RecommendationResult, type RecommendationSummary as RecommendationSummary, type ResolveRequest as ResolveRequest, - type SiteConfigResponse as SiteConfigResponse, type Target as Target, - type AnalysisSummariesOffsetPagination as AnalysisSummariesOffsetPagination, type RecommendationSummariesOffsetPagination as RecommendationSummariesOffsetPagination, - type SiteConfigListParams as SiteConfigListParams, - type SiteConfigListRecommendationsParams as SiteConfigListRecommendationsParams, - type SiteConfigLookupParams as SiteConfigLookupParams, - type SiteConfigResolveParams as SiteConfigResolveParams, + type ConfigRegistryListParams as ConfigRegistryListParams, + type ConfigRegistryLookupParams as ConfigRegistryLookupParams, + type ConfigRegistryResolveParams as ConfigRegistryResolveParams, }; export { diff --git a/src/resources/config-registry.ts b/src/resources/config-registry.ts new file mode 100644 index 00000000..548645a7 --- /dev/null +++ b/src/resources/config-registry.ts @@ -0,0 +1,3 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +export * from './config-registry/index'; diff --git a/src/resources/config-registry/analyses.ts b/src/resources/config-registry/analyses.ts new file mode 100644 index 00000000..187ffde9 --- /dev/null +++ b/src/resources/config-registry/analyses.ts @@ -0,0 +1,63 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import { APIResource } from '../../core/resource'; +import * as ConfigRegistryAPI from './config-registry'; +import { AnalysisSummariesOffsetPagination } from './config-registry'; +import { APIPromise } from '../../core/api-promise'; +import { OffsetPagination, type OffsetPaginationParams, PagePromise } from '../../core/pagination'; +import { RequestOptions } from '../../internal/request-options'; +import { path } from '../../internal/utils/path'; + +/** + * Resolve browser and proxy recommendations for bot-protected sites. + */ +export class Analyses extends APIResource { + /** + * Returns a project-scoped historical analysis and the recommendation outcome + * concluded by that run. Later knowledge does not change this response. + * + * @example + * ```ts + * const configRegistryResponse = + * await client.configRegistry.analyses.retrieve('id'); + * ``` + */ + retrieve(id: string, options?: RequestOptions): APIPromise { + return this._client.get(path`/config-registry/analyses/${id}`, options); + } + + /** + * Lists analyses for the selected project, newest first. + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const analysisSummary of client.configRegistry.analyses.list()) { + * // ... + * } + * ``` + */ + list( + query: AnalysisListParams | null | undefined = {}, + options?: RequestOptions, + ): PagePromise { + return this._client.getAPIList( + '/config-registry/analyses', + OffsetPagination, + { query, ...options }, + ); + } +} + +export interface AnalysisListParams extends OffsetPaginationParams { + /** + * Case-insensitive substring search over requested URLs. + */ + search?: string; +} + +export declare namespace Analyses { + export { type AnalysisListParams as AnalysisListParams }; +} + +export { type AnalysisSummariesOffsetPagination }; diff --git a/src/resources/site-configs.ts b/src/resources/config-registry/config-registry.ts similarity index 77% rename from src/resources/site-configs.ts rename to src/resources/config-registry/config-registry.ts index 2cbe9231..8e05c8c2 100644 --- a/src/resources/site-configs.ts +++ b/src/resources/config-registry/config-registry.ts @@ -1,47 +1,18 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -import { APIResource } from '../core/resource'; -import * as Shared from './shared'; -import { APIPromise } from '../core/api-promise'; -import { OffsetPagination, type OffsetPaginationParams, PagePromise } from '../core/pagination'; -import { RequestOptions } from '../internal/request-options'; -import { path } from '../internal/utils/path'; +import { APIResource } from '../../core/resource'; +import * as Shared from '../shared'; +import * as AnalysesAPI from './analyses'; +import { Analyses, AnalysisListParams } from './analyses'; +import { APIPromise } from '../../core/api-promise'; +import { OffsetPagination, type OffsetPaginationParams, PagePromise } from '../../core/pagination'; +import { RequestOptions } from '../../internal/request-options'; /** * Resolve browser and proxy recommendations for bot-protected sites. */ -export class SiteConfigs extends APIResource { - /** - * Returns a project-scoped historical analysis and the recommendation outcome - * concluded by that run. Later knowledge does not change this response. - * - * @example - * ```ts - * const siteConfigResponse = - * await client.siteConfigs.retrieve('id'); - * ``` - */ - retrieve(id: string, options?: RequestOptions): APIPromise { - return this._client.get(path`/site-configs/${id}`, options); - } - - /** - * Lists analyses for the selected project, newest first. - * - * @example - * ```ts - * // Automatically fetches more pages as needed. - * for await (const analysisSummary of client.siteConfigs.list()) { - * // ... - * } - * ``` - */ - list( - query: SiteConfigListParams | null | undefined = {}, - options?: RequestOptions, - ): PagePromise { - return this._client.getAPIList('/site-configs', OffsetPagination, { query, ...options }); - } +export class ConfigRegistry extends APIResource { + analyses: AnalysesAPI.Analyses = new AnalysesAPI.Analyses(this._client); /** * Lists unique domains previously analyzed by the selected project with their @@ -50,16 +21,16 @@ export class SiteConfigs extends APIResource { * @example * ```ts * // Automatically fetches more pages as needed. - * for await (const recommendationSummary of client.siteConfigs.listRecommendations()) { + * for await (const recommendationSummary of client.configRegistry.list()) { * // ... * } * ``` */ - listRecommendations( - query: SiteConfigListRecommendationsParams | null | undefined = {}, + list( + query: ConfigRegistryListParams | null | undefined = {}, options?: RequestOptions, ): PagePromise { - return this._client.getAPIList('/site-configs/recommendations', OffsetPagination, { + return this._client.getAPIList('/config-registry', OffsetPagination, { query, ...options, }); @@ -67,40 +38,41 @@ export class SiteConfigs extends APIResource { /** * Returns current global knowledge without resolving DNS, creating an analysis, or - * updating Site Config data. + * updating config registry data. * * @example * ```ts - * const lookupResponse = await client.siteConfigs.lookup({ + * const lookupResponse = await client.configRegistry.lookup({ * url: 'https://example.com', * }); * ``` */ - lookup(body: SiteConfigLookupParams, options?: RequestOptions): APIPromise { - return this._client.post('/site-configs/lookup', { body, ...options }); + lookup(body: ConfigRegistryLookupParams, options?: RequestOptions): APIPromise { + return this._client.post('/config-registry/lookup', { body, ...options }); } /** * Explicitly starts or retries a project-scoped background analysis while - * preserving current global knowledge when available. Use `/site-configs/lookup` - * for side-effect-free reads. + * preserving current global knowledge when available. Use + * `/config-registry/lookup` for side-effect-free reads. * * @example * ```ts - * const siteConfigResponse = await client.siteConfigs.resolve( - * { url: 'https://example.com' }, - * ); + * const configRegistryResponse = + * await client.configRegistry.resolve({ + * url: 'https://example.com', + * }); * ``` */ - resolve(body: SiteConfigResolveParams, options?: RequestOptions): APIPromise { - return this._client.post('/site-configs/resolve', { body, ...options }); + resolve(body: ConfigRegistryResolveParams, options?: RequestOptions): APIPromise { + return this._client.post('/config-registry/resolve', { body, ...options }); } } -export type AnalysisSummariesOffsetPagination = OffsetPagination; - export type RecommendationSummariesOffsetPagination = OffsetPagination; +export type AnalysisSummariesOffsetPagination = OffsetPagination; + export interface Analysis { /** * Discovery run ID used to poll analysis status. @@ -124,7 +96,7 @@ export interface Analysis { finished_at: string | null; /** - * Lifecycle status of the background analysis. + * Lifecycle status of a background analysis. */ status: 'running' | 'completed' | 'failed' | 'canceled'; } @@ -162,6 +134,21 @@ export interface Browser { viewport: Shared.BrowserViewport; } +export interface ConfigRegistryResponse { + /** + * Pollable analysis after workflow submission is acknowledged. Null when no + * refresh was submitted. + */ + analysis: Analysis | null; + + /** + * A recommendation or a structured no-recommendation result. + */ + recommendation: RecommendationResult | null; + + target: Target; +} + export interface Evidence { accessed: number; @@ -216,8 +203,7 @@ export interface LookupResponse { export interface NoRecommendation { /** - * Machine-readable reason Kernel cannot currently provide a Site Config - * recommendation. + * Machine-readable reason Kernel cannot currently provide a config recommendation. */ code: 'proxy_restricted' | 'no_working_configuration' | 'inconclusive'; @@ -232,13 +218,13 @@ export interface NoRecommendation { /** * Proxy recipe for the recommended browser. */ -export type Proxy = Proxy.SiteConfigDirectProxy | Proxy.SiteConfigManagedProxy; +export type Proxy = Proxy.ConfigRegistryDirectProxy | Proxy.ConfigRegistryManagedProxy; export namespace Proxy { /** * Direct egress recipe. Pass `{ "mode": "direct" }` as the browser's `proxy`. */ - export interface SiteConfigDirectProxy { + export interface ConfigRegistryDirectProxy { mode: 'direct'; } @@ -247,16 +233,16 @@ export namespace Proxy { * create the resource once, retain its ID, and reuse that ID as the browser's * `proxy.id`. Do not submit this recipe before every browser session. */ - export interface SiteConfigManagedProxy { + export interface ConfigRegistryManagedProxy { /** * Configuration for routing traffic through a proxy. */ - create: SiteConfigManagedProxy.Create; + create: ConfigRegistryManagedProxy.Create; mode: 'managed'; } - export namespace SiteConfigManagedProxy { + export namespace ConfigRegistryManagedProxy { /** * Configuration for routing traffic through a proxy. */ @@ -444,6 +430,16 @@ export interface Recommendation { export type RecommendationResult = Recommendation | NoRecommendation; export interface RecommendationSummary { + /** + * ID of the most recently requested analysis for this domain. + */ + analysis_id: string; + + /** + * Lifecycle status of the most recently requested analysis for this domain. + */ + analysis_status: 'running' | 'completed' | 'failed' | 'canceled'; + /** * Most recent time the selected project requested an analysis for this domain. */ @@ -485,21 +481,6 @@ export interface ResolveRequest { allowed_proxy_countries?: Array; } -export interface SiteConfigResponse { - /** - * Pollable analysis after workflow submission is acknowledged. Null when no - * refresh was submitted. - */ - analysis: Analysis | null; - - /** - * A recommendation or a structured no-recommendation result. - */ - recommendation: RecommendationResult | null; - - target: Target; -} - export interface Target { /** * Registrable domain. @@ -517,15 +498,19 @@ export interface Target { normalized: string; } -export interface SiteConfigListParams extends OffsetPaginationParams {} +export interface ConfigRegistryListParams extends OffsetPaginationParams { + /** + * Case-insensitive domain search. Full URLs are reduced to their registrable + * domain. + */ + search?: string; -export interface SiteConfigListRecommendationsParams extends OffsetPaginationParams { - sort_by?: 'target' | 'recommended_config' | 'last_requested_at' | 'success_rate'; + sort_by?: 'target' | 'analysis_status' | 'recommended_config' | 'last_requested_at' | 'success_rate'; sort_order?: 'asc' | 'desc'; } -export interface SiteConfigLookupParams { +export interface ConfigRegistryLookupParams { /** * Public HTTP(S) URL to look up. */ @@ -538,7 +523,7 @@ export interface SiteConfigLookupParams { allowed_proxy_countries?: Array; } -export interface SiteConfigResolveParams { +export interface ConfigRegistryResolveParams { /** * Public HTTP(S) URL to refresh. */ @@ -552,11 +537,14 @@ export interface SiteConfigResolveParams { allowed_proxy_countries?: Array; } -export declare namespace SiteConfigs { +ConfigRegistry.Analyses = Analyses; + +export declare namespace ConfigRegistry { export { type Analysis as Analysis, type AnalysisSummary as AnalysisSummary, type Browser as Browser, + type ConfigRegistryResponse as ConfigRegistryResponse, type Evidence as Evidence, type LookupRequest as LookupRequest, type LookupResponse as LookupResponse, @@ -566,13 +554,12 @@ export declare namespace SiteConfigs { type RecommendationResult as RecommendationResult, type RecommendationSummary as RecommendationSummary, type ResolveRequest as ResolveRequest, - type SiteConfigResponse as SiteConfigResponse, type Target as Target, - type AnalysisSummariesOffsetPagination as AnalysisSummariesOffsetPagination, type RecommendationSummariesOffsetPagination as RecommendationSummariesOffsetPagination, - type SiteConfigListParams as SiteConfigListParams, - type SiteConfigListRecommendationsParams as SiteConfigListRecommendationsParams, - type SiteConfigLookupParams as SiteConfigLookupParams, - type SiteConfigResolveParams as SiteConfigResolveParams, + type ConfigRegistryListParams as ConfigRegistryListParams, + type ConfigRegistryLookupParams as ConfigRegistryLookupParams, + type ConfigRegistryResolveParams as ConfigRegistryResolveParams, }; + + export { Analyses as Analyses, type AnalysisListParams as AnalysisListParams }; } diff --git a/src/resources/config-registry/index.ts b/src/resources/config-registry/index.ts new file mode 100644 index 00000000..6991de4c --- /dev/null +++ b/src/resources/config-registry/index.ts @@ -0,0 +1,25 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +export { Analyses, type AnalysisListParams } from './analyses'; +export { + ConfigRegistry, + type Analysis, + type AnalysisSummary, + type Browser, + type ConfigRegistryResponse, + type Evidence, + type LookupRequest, + type LookupResponse, + type NoRecommendation, + type Proxy, + type Recommendation, + type RecommendationResult, + type RecommendationSummary, + type ResolveRequest, + type Target, + type ConfigRegistryListParams, + type ConfigRegistryLookupParams, + type ConfigRegistryResolveParams, + type AnalysisSummariesOffsetPagination, + type RecommendationSummariesOffsetPagination, +} from './config-registry'; diff --git a/src/resources/index.ts b/src/resources/index.ts index f397103c..fb5554a1 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -64,6 +64,28 @@ export { type ProfilesOffsetPagination, type BrowserListResponsesOffsetPagination, } from './browsers/browsers'; +export { + ConfigRegistry, + type Analysis, + type AnalysisSummary, + type Browser, + type ConfigRegistryResponse, + type Evidence, + type LookupRequest, + type LookupResponse, + type NoRecommendation, + type Proxy, + type Recommendation, + type RecommendationResult, + type RecommendationSummary, + type ResolveRequest, + type Target, + type ConfigRegistryListParams, + type ConfigRegistryLookupParams, + type ConfigRegistryResolveParams, + type AnalysisSummariesOffsetPagination, + type RecommendationSummariesOffsetPagination, +} from './config-registry/config-registry'; export { CredentialProviders, type CreateCredentialProviderRequest, @@ -156,27 +178,4 @@ export { type ProxyCheckParams, type ProxyListResponsesOffsetPagination, } from './proxies'; -export { - SiteConfigs, - type Analysis, - type AnalysisSummary, - type Browser, - type Evidence, - type LookupRequest, - type LookupResponse, - type NoRecommendation, - type Proxy, - type Recommendation, - type RecommendationResult, - type RecommendationSummary, - type ResolveRequest, - type SiteConfigResponse, - type Target, - type SiteConfigListParams, - type SiteConfigListRecommendationsParams, - type SiteConfigLookupParams, - type SiteConfigResolveParams, - type AnalysisSummariesOffsetPagination, - type RecommendationSummariesOffsetPagination, -} from './site-configs'; export { Telemetry } from './telemetry/telemetry'; diff --git a/tests/api-resources/config-registry/analyses.test.ts b/tests/api-resources/config-registry/analyses.test.ts new file mode 100644 index 00000000..35811e58 --- /dev/null +++ b/tests/api-resources/config-registry/analyses.test.ts @@ -0,0 +1,49 @@ +// 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 analyses', () => { + // Mock server tests are disabled + test.skip('retrieve', async () => { + const responsePromise = client.configRegistry.analyses.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); + }); + + // Mock server tests are disabled + test.skip('list', async () => { + const responsePromise = client.configRegistry.analyses.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); + }); + + // Mock server tests are disabled + 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.configRegistry.analyses.list( + { + limit: 1, + offset: 0, + search: 'search', + }, + { path: '/_stainless_unknown_path' }, + ), + ).rejects.toThrow(Kernel.NotFoundError); + }); +}); diff --git a/tests/api-resources/site-configs.test.ts b/tests/api-resources/config-registry/config-registry.test.ts similarity index 57% rename from tests/api-resources/site-configs.test.ts rename to tests/api-resources/config-registry/config-registry.test.ts index 0a71e191..abd719e6 100644 --- a/tests/api-resources/site-configs.test.ts +++ b/tests/api-resources/config-registry/config-registry.test.ts @@ -7,22 +7,10 @@ const client = new Kernel({ baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', }); -describe('resource siteConfigs', () => { - // Mock server tests are disabled - test.skip('retrieve', async () => { - const responsePromise = client.siteConfigs.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); - }); - +describe('resource configRegistry', () => { // Mock server tests are disabled test.skip('list', async () => { - const responsePromise = client.siteConfigs.list(); + const responsePromise = client.configRegistry.list(); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -36,30 +24,11 @@ describe('resource siteConfigs', () => { 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.siteConfigs.list({ limit: 1, offset: 0 }, { path: '/_stainless_unknown_path' }), - ).rejects.toThrow(Kernel.NotFoundError); - }); - - // Mock server tests are disabled - test.skip('listRecommendations', async () => { - const responsePromise = client.siteConfigs.listRecommendations(); - 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); - }); - - // Mock server tests are disabled - test.skip('listRecommendations: 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.siteConfigs.listRecommendations( + client.configRegistry.list( { limit: 1, offset: 0, + search: 'search', sort_by: 'target', sort_order: 'asc', }, @@ -70,7 +39,7 @@ describe('resource siteConfigs', () => { // Mock server tests are disabled test.skip('lookup: only required params', async () => { - const responsePromise = client.siteConfigs.lookup({ url: 'https://example.com' }); + const responsePromise = client.configRegistry.lookup({ url: 'https://example.com' }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -82,7 +51,7 @@ describe('resource siteConfigs', () => { // Mock server tests are disabled test.skip('lookup: required and optional params', async () => { - const response = await client.siteConfigs.lookup({ + const response = await client.configRegistry.lookup({ url: 'https://example.com', allowed_proxy_countries: ['US'], }); @@ -90,7 +59,7 @@ describe('resource siteConfigs', () => { // Mock server tests are disabled test.skip('resolve: only required params', async () => { - const responsePromise = client.siteConfigs.resolve({ url: 'https://example.com' }); + const responsePromise = client.configRegistry.resolve({ url: 'https://example.com' }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -102,7 +71,7 @@ describe('resource siteConfigs', () => { // Mock server tests are disabled test.skip('resolve: required and optional params', async () => { - const response = await client.siteConfigs.resolve({ + const response = await client.configRegistry.resolve({ url: 'https://example.com', allowed_proxy_countries: ['US'], }); From 63c21961de1fcbdc4163b841c88d5541620c7298 Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Thu, 27 Aug 2026 00:00:43 +0000 Subject: [PATCH 2/2] release: 0.96.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index efb7bd94..6b5b821b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.95.0" + ".": "0.96.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 11384fcf..a505c178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.96.0](https://github.com/kernel/kernel-node-sdk/compare/v0.95.0...v0.96.0) (2026-08-27) + + +### Features + +* Rename the site configs API to config registry ([32f4b97](https://github.com/kernel/kernel-node-sdk/commit/32f4b9747b9ba317b41d1a89a5162b6e81d61835)) + ## [0.95.0](https://github.com/kernel/kernel-node-sdk/compare/v0.94.0...v0.95.0) (2026-08-26) diff --git a/package.json b/package.json index 4cf44668..9e7f9a1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.95.0", + "version": "0.96.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 d1d95222..b75d8d52 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.95.0'; // x-release-please-version +export const VERSION = '0.96.0'; // x-release-please-version