diff --git a/.release-please-manifest.json b/.release-please-manifest.json index bac4ebcfd..6103afc2b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.28.0" + ".": "1.29.0" } diff --git a/.stats.yml b/.stats.yml index 63705699e..75c1b7196 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/runloop-ai/runloop-c1b0e0d2c2bf9d7888ddef0cfdfb390458875cd2c1feb48a06fcd06e92105326.yml -openapi_spec_hash: ec61cf6d205251b54e1a6d68d9dd9860 -config_hash: 6d102da8b9fcc3d0deb42d7a707e78c6 +configured_endpoints: 121 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-f8c19bf9329a554bedfbb8678d6d3cb8881a285d27b3d8ba078e2a573b597a17.yml +openapi_spec_hash: 0c3d490050a9bbaa5cb7378bf55e8f37 +config_hash: 7afcebea2dd638ed0cf0d5367f820f73 diff --git a/CHANGELOG.md b/CHANGELOG.md index 71fe49d45..bb12e4e7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## 1.29.0 (2026-08-20) + +Full Changelog: [v1.28.0...v1.29.0](https://github.com/runloopai/api-client-ts/compare/v1.28.0...v1.29.0) + +### Features + +* **axon:** add registry delete endpoint ([#10769](https://github.com/runloopai/api-client-ts/issues/10769)) ([e82b606](https://github.com/runloopai/api-client-ts/commit/e82b606f189f91751fb636a2b8878daea69a74af)) +* **broker:** plumb Pi protocol selection ([#10256](https://github.com/runloopai/api-client-ts/issues/10256)) ([84893cc](https://github.com/runloopai/api-client-ts/commit/84893cc2ca7e97176bb24c917b1fcd08c1cc2fd5)) +* **config:** custom_headers on McpConfig/GatewayConfig — persistence, REST, validation, provisioner, OpenAPI ([#11096](https://github.com/runloopai/api-client-ts/issues/11096)) ([378d2df](https://github.com/runloopai/api-client-ts/commit/378d2df40b5580bf09e9b394e75f5c5763418be6)) +* **converter:** add Helm chart, container image, and enable in dev ([#10405](https://github.com/runloopai/api-client-ts/issues/10405)) ([3d08f4d](https://github.com/runloopai/api-client-ts/commit/3d08f4d5771cb771101fb479d5bb8d72b62a2092)) +* **devbox:** recover resume provisioning failures ([#10597](https://github.com/runloopai/api-client-ts/issues/10597)) ([b85737e](https://github.com/runloopai/api-client-ts/commit/b85737ef21a61dd4ed6c0f4c669cc313346e3af4)) +* **gateway:** first-class BASIC auth mechanism ([#11063](https://github.com/runloopai/api-client-ts/issues/11063)) ([6ad0047](https://github.com/runloopai/api-client-ts/commit/6ad00478d8c7853bcb173ea1579d0e1da8825dd3)) +* **mcp:** configurable auth_mechanism on McpConfig, shared shape with gateway ([#11113](https://github.com/runloopai/api-client-ts/issues/11113)) ([d81080b](https://github.com/runloopai/api-client-ts/commit/d81080bcce7704b498f7242a4738eb767bcb5dd5)) + + +### Bug Fixes + +* **devbox:** make Devbox update API patch-like ([#10582](https://github.com/runloopai/api-client-ts/issues/10582)) ([e99087b](https://github.com/runloopai/api-client-ts/commit/e99087b1a297230510180d041e8da895d993c552)) +* **gateway:** reject keyless HEADER auth_mechanism at admission and in looper ([#11120](https://github.com/runloopai/api-client-ts/issues/11120)) ([9277e11](https://github.com/runloopai/api-client-ts/commit/9277e118b9fcd85cd05106390be0a98ed4f3a8c8)) +* **mcp:** remove stale createFromInspection metadata ([#811](https://github.com/runloopai/api-client-ts/issues/811)) ([0842f40](https://github.com/runloopai/api-client-ts/commit/0842f402cc4a7ddc73d89e4643c3a5984e1bdb4a)) + ## 1.28.0 (2026-07-29) Full Changelog: [v1.27.0...v1.28.0](https://github.com/runloopai/api-client-ts/compare/v1.27.0...v1.28.0) diff --git a/api.md b/api.md index 3af4951ad..7f2f6b985 100644 --- a/api.md +++ b/api.md @@ -5,8 +5,10 @@ Types: - AfterIdle - AgentMount - AgentSource +- AuthMechanism - BrokerMount - CodeMountParameters +- CustomHeader - LaunchParameters - LifecycleConfiguration - LifecycleHooks @@ -105,12 +107,14 @@ Types: - AxonView - PublishParams - PublishResultView +- AxonDeleteResponse Methods: - client.axons.create({ ...params }) -> AxonView - client.axons.retrieve(id) -> AxonView - client.axons.list({ ...params }) -> AxonViewsAxonsCursorIDPage +- client.axons.delete(id) -> unknown - client.axons.publish(id, { ...params }) -> PublishResultView - client.axons.subscribeSse(id, { ...params }) -> AxonEventView diff --git a/package.json b/package.json index 9732d37b5..f534c35b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@runloop/api-client", - "version": "1.28.0", + "version": "1.29.0", "description": "The official TypeScript library for the Runloop API", "author": "Runloop ", "types": "dist/sdk.d.ts", diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json index baed81029..9be530795 100644 --- a/packages/mcp-server/manifest.json +++ b/packages/mcp-server/manifest.json @@ -1,7 +1,7 @@ { "dxt_version": "0.2", "name": "@runloop/api-client-mcp", - "version": "1.28.0", + "version": "1.29.0", "description": "The official MCP Server for the Runloop API", "author": { "name": "Runloop", diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index c897256cd..4791bec49 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@runloop/api-client-mcp", - "version": "1.28.0", + "version": "1.29.0", "description": "The official MCP Server for the Runloop API", "author": "Runloop ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/src/code-tool-worker.ts b/packages/mcp-server/src/code-tool-worker.ts index 7f6bb184a..b298e8737 100644 --- a/packages/mcp-server/src/code-tool-worker.ts +++ b/packages/mcp-server/src/code-tool-worker.ts @@ -124,7 +124,6 @@ const fuse = new Fuse( 'client.agents.list', 'client.agents.retrieve', 'client.blueprints.create', - 'client.blueprints.createFromInspection', 'client.blueprints.delete', 'client.blueprints.list', 'client.blueprints.listPublic', diff --git a/packages/mcp-server/src/methods.ts b/packages/mcp-server/src/methods.ts index 9bd369130..b7cf06691 100644 --- a/packages/mcp-server/src/methods.ts +++ b/packages/mcp-server/src/methods.ts @@ -148,12 +148,6 @@ export const sdkMethods: SdkMethod[] = [ httpMethod: 'post', httpPath: '/v1/blueprints/{id}/delete', }, - { - clientCallName: 'client.blueprints.createFromInspection', - fullyQualifiedName: 'blueprints.createFromInspection', - httpMethod: 'post', - httpPath: '/v1/blueprints/create_from_inspection', - }, { clientCallName: 'client.blueprints.listPublic', fullyQualifiedName: 'blueprints.listPublic', diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts index 2ab66aec9..8ba74e597 100644 --- a/packages/mcp-server/src/server.ts +++ b/packages/mcp-server/src/server.ts @@ -16,7 +16,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) => new McpServer( { name: 'runloop_api_client_api', - version: '1.28.0', + version: '1.29.0', }, { instructions: await getInstructions(stainlessApiKey), diff --git a/src/index.ts b/src/index.ts index b4ac078fd..b0692cf5d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -178,6 +178,7 @@ import { } from './resources/secrets'; import { AxonCreateParams, + AxonDeleteResponse, AxonEventView, AxonListParams, AxonListView, @@ -649,6 +650,7 @@ export declare namespace Runloop { type AxonView as AxonView, type PublishParams as PublishParams, type PublishResultView as PublishResultView, + type AxonDeleteResponse as AxonDeleteResponse, AxonViewsAxonsCursorIDPage as AxonViewsAxonsCursorIDPage, type AxonListParams as AxonListParams, type AxonPublishParams as AxonPublishParams, @@ -830,8 +832,10 @@ export declare namespace Runloop { export type AfterIdle = API.AfterIdle; export type AgentMount = API.AgentMount; export type AgentSource = API.AgentSource; + export type AuthMechanism = API.AuthMechanism; export type BrokerMount = API.BrokerMount; export type CodeMountParameters = API.CodeMountParameters; + export type CustomHeader = API.CustomHeader; export type LaunchParameters = API.LaunchParameters; export type LifecycleConfiguration = API.LifecycleConfiguration; export type LifecycleHooks = API.LifecycleHooks; diff --git a/src/resources/axons/axons.ts b/src/resources/axons/axons.ts index b674680e7..4455c248b 100644 --- a/src/resources/axons/axons.ts +++ b/src/resources/axons/axons.ts @@ -67,6 +67,13 @@ export class Axons extends APIResource { return this._client.getAPIList('/v1/axons', AxonViewsAxonsCursorIDPage, { query, ...options }); } + /** + * [Beta] Mark an axon deleted. + */ + delete(id: string, options?: Core.RequestOptions): Core.APIPromise { + return this._client.delete(`/v1/axons/${id}`, options); + } + /** * [Beta] Publish an event to a specified axon. */ @@ -220,6 +227,8 @@ export interface PublishResultView { timestamp_ms: number; } +export type AxonDeleteResponse = unknown; + export interface AxonCreateParams { /** * (Optional) Name for the axon. @@ -292,6 +301,7 @@ export declare namespace Axons { type AxonView as AxonView, type PublishParams as PublishParams, type PublishResultView as PublishResultView, + type AxonDeleteResponse as AxonDeleteResponse, AxonViewsAxonsCursorIDPage as AxonViewsAxonsCursorIDPage, type AxonListParams as AxonListParams, type AxonPublishParams as AxonPublishParams, diff --git a/src/resources/axons/index.ts b/src/resources/axons/index.ts index 9c5b7033c..d85145ea3 100644 --- a/src/resources/axons/index.ts +++ b/src/resources/axons/index.ts @@ -9,6 +9,7 @@ export { type AxonView, type PublishParams, type PublishResultView, + type AxonDeleteResponse, type AxonListParams, type AxonPublishParams, type AxonSubscribeSseParams, diff --git a/src/resources/blueprints.ts b/src/resources/blueprints.ts index f6ed91e77..e8c9818c0 100644 --- a/src/resources/blueprints.ts +++ b/src/resources/blueprints.ts @@ -449,7 +449,7 @@ export interface BlueprintView { /** * The status of the Blueprint build. */ - status: 'queued' | 'provisioning' | 'building' | 'failed' | 'build_complete'; + status: 'queued' | 'provisioning' | 'building' | 'awaiting_upload' | 'failed' | 'build_complete'; /** * The ID of the base Blueprint. diff --git a/src/resources/devboxes/devboxes.ts b/src/resources/devboxes/devboxes.ts index af8bc6aa6..d88aac1ab 100644 --- a/src/resources/devboxes/devboxes.ts +++ b/src/resources/devboxes/devboxes.ts @@ -135,8 +135,8 @@ export class Devboxes extends APIResource { return this.awaitRunning(devbox.id, { ...requestOptions, longPoll, polling }); } /** - * Updates a devbox by doing a complete update the existing name,metadata fields. - * It does not patch partial values. + * Updates the specified Devbox fields. Omitted fields are left unchanged. An empty + * name clears the name, and an empty metadata map clears the metadata. */ update(id: string, body?: DevboxUpdateParams, options?: Core.RequestOptions): Core.APIPromise; update(id: string, options?: Core.RequestOptions): Core.APIPromise; @@ -968,6 +968,11 @@ export interface DevboxView { export namespace DevboxView { export interface StateTransition { + /** + * The failure that caused this state transition, if applicable. + */ + failure_reason?: string | null; + /** * The status of the Devbox. * @@ -1290,12 +1295,14 @@ export namespace DevboxCreateParams { export interface DevboxUpdateParams { /** - * User defined metadata to attach to the devbox for organization. + * User defined metadata to replace the Devbox metadata. Omit to leave unchanged or + * set to an empty map to clear it. */ metadata?: { [key: string]: string } | null; /** - * (Optional) A user specified name to give the Devbox. + * A user specified name to give the Devbox. Omit to leave unchanged or set to an + * empty string to clear it. */ name?: string | null; } diff --git a/src/resources/gateway-configs.ts b/src/resources/gateway-configs.ts index 69d77e1cc..0ef501ac1 100644 --- a/src/resources/gateway-configs.ts +++ b/src/resources/gateway-configs.ts @@ -3,6 +3,7 @@ import { APIResource } from '../resource'; import { isRequestOptions } from '../core'; import * as Core from '../core'; +import * as Shared from './shared'; import { GatewayConfigsCursorIDPage, type GatewayConfigsCursorIDPageParams } from '../pagination'; export class GatewayConfigs extends APIResource { @@ -87,7 +88,7 @@ export interface GatewayConfigCreateParameters { * How credentials should be applied to proxied requests. Specify the type * ('header', 'bearer') and optional key field. */ - auth_mechanism: GatewayConfigCreateParameters.AuthMechanism; + auth_mechanism: Shared.AuthMechanism; /** * The target endpoint URL (e.g., 'https://api.anthropic.com'). @@ -101,27 +102,15 @@ export interface GatewayConfigCreateParameters { name: string; /** - * Optional description for this gateway configuration. + * Additional headers applied to proxied requests after the auth mechanism. At most + * 8 entries. */ - description?: string | null; -} + custom_headers?: Array | null; -export namespace GatewayConfigCreateParameters { /** - * How credentials should be applied to proxied requests. Specify the type - * ('header', 'bearer') and optional key field. + * Optional description for this gateway configuration. */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer'. - */ - type: string; - - /** - * For 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } + description?: string | null; } /** @@ -150,10 +139,16 @@ export interface GatewayConfigListView { */ export interface GatewayConfigUpdateParameters { /** - * Defines how credentials are applied to HTTP requests when proxying through the - * gateway. + * Defines how the primary credential is applied to requests proxied to the + * upstream. */ - auth_mechanism?: GatewayConfigUpdateParameters.AuthMechanism | null; + auth_mechanism?: Shared.AuthMechanism | null; + + /** + * New list of additional headers. Replaces the existing list entirely; use an + * empty list to clear all custom headers. At most 8 entries. + */ + custom_headers?: Array | null; /** * New description for this gateway configuration. @@ -171,24 +166,6 @@ export interface GatewayConfigUpdateParameters { name?: string | null; } -export namespace GatewayConfigUpdateParameters { - /** - * Defines how credentials are applied to HTTP requests when proxying through the - * gateway. - */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer'. - */ - type: string; - - /** - * For 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } -} - /** * A GatewayConfig defines a configuration for proxying API requests through the * agent gateway. It specifies the target endpoint and how credentials should be @@ -203,7 +180,7 @@ export interface GatewayConfigView { /** * How credentials should be applied to proxied requests. */ - auth_mechanism: GatewayConfigView.AuthMechanism; + auth_mechanism: Shared.AuthMechanism; /** * Creation time of the GatewayConfig (Unix timestamp in milliseconds). @@ -227,26 +204,16 @@ export interface GatewayConfigView { account_id?: string | null; /** - * Optional description for this gateway configuration. + * Additional headers applied to proxied requests after the auth mechanism. + * Secret-backed entries reference the secret by 'sec\_' id; values are never + * returned. */ - description?: string | null; -} + custom_headers?: Array | null; -export namespace GatewayConfigView { /** - * How credentials should be applied to proxied requests. + * Optional description for this gateway configuration. */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer'. - */ - type: string; - - /** - * For 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } + description?: string | null; } export interface GatewayConfigCreateParams { @@ -254,7 +221,7 @@ export interface GatewayConfigCreateParams { * How credentials should be applied to proxied requests. Specify the type * ('header', 'bearer') and optional key field. */ - auth_mechanism: GatewayConfigCreateParams.AuthMechanism; + auth_mechanism: Shared.AuthMechanism; /** * The target endpoint URL (e.g., 'https://api.anthropic.com'). @@ -267,36 +234,30 @@ export interface GatewayConfigCreateParams { */ name: string; + /** + * Additional headers applied to proxied requests after the auth mechanism. At most + * 8 entries. + */ + custom_headers?: Array | null; + /** * Optional description for this gateway configuration. */ description?: string | null; } -export namespace GatewayConfigCreateParams { +export interface GatewayConfigUpdateParams { /** - * How credentials should be applied to proxied requests. Specify the type - * ('header', 'bearer') and optional key field. + * Defines how the primary credential is applied to requests proxied to the + * upstream. */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer'. - */ - type: string; + auth_mechanism?: Shared.AuthMechanism | null; - /** - * For 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } -} - -export interface GatewayConfigUpdateParams { /** - * Defines how credentials are applied to HTTP requests when proxying through the - * gateway. + * New list of additional headers. Replaces the existing list entirely; use an + * empty list to clear all custom headers. At most 8 entries. */ - auth_mechanism?: GatewayConfigUpdateParams.AuthMechanism | null; + custom_headers?: Array | null; /** * New description for this gateway configuration. @@ -314,24 +275,6 @@ export interface GatewayConfigUpdateParams { name?: string | null; } -export namespace GatewayConfigUpdateParams { - /** - * Defines how credentials are applied to HTTP requests when proxying through the - * gateway. - */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer'. - */ - type: string; - - /** - * For 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } -} - export interface GatewayConfigListParams extends GatewayConfigsCursorIDPageParams { /** * Filter by ID. diff --git a/src/resources/index.ts b/src/resources/index.ts index fe0f43691..8e7799bea 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -29,6 +29,7 @@ export { type AxonView, type PublishParams, type PublishResultView, + type AxonDeleteResponse, type AxonListParams, type AxonPublishParams, type AxonSubscribeSseParams, diff --git a/src/resources/mcp-configs.ts b/src/resources/mcp-configs.ts index 705a7a6a0..6e763c1c6 100644 --- a/src/resources/mcp-configs.ts +++ b/src/resources/mcp-configs.ts @@ -3,6 +3,7 @@ import { APIResource } from '../resource'; import { isRequestOptions } from '../core'; import * as Core from '../core'; +import * as Shared from './shared'; import { McpConfigsCursorIDPage, type McpConfigsCursorIDPageParams } from '../pagination'; export class McpConfigs extends APIResource { @@ -99,6 +100,18 @@ export interface McpConfigCreateParameters { */ name: string; + /** + * Defines how the primary credential is applied to requests proxied to the + * upstream. + */ + auth_mechanism?: Shared.AuthMechanism | null; + + /** + * Additional headers applied to upstream requests after the credential. At most 8 + * entries. + */ + custom_headers?: Array | null; + /** * Optional description for this MCP configuration. */ @@ -136,6 +149,18 @@ export interface McpConfigUpdateParameters { */ allowed_tools?: Array | null; + /** + * Defines how the primary credential is applied to requests proxied to the + * upstream. + */ + auth_mechanism?: Shared.AuthMechanism | null; + + /** + * New list of additional headers. Replaces the existing list entirely; use an + * empty list to clear all custom headers. At most 8 entries. + */ + custom_headers?: Array | null; + /** * New description for this MCP configuration. */ @@ -169,6 +194,11 @@ export interface McpConfigView { */ allowed_tools: Array; + /** + * How the primary credential is applied to upstream requests. + */ + auth_mechanism: Shared.AuthMechanism; + /** * Creation time of the McpConfig (Unix timestamp in milliseconds). */ @@ -184,6 +214,13 @@ export interface McpConfigView { */ name: string; + /** + * Additional headers applied to upstream requests after the credential. + * Secret-backed entries reference the secret by 'sec\_' id; values are never + * returned. + */ + custom_headers?: Array | null; + /** * Optional description for this MCP configuration. */ @@ -209,6 +246,18 @@ export interface McpConfigCreateParams { */ name: string; + /** + * Defines how the primary credential is applied to requests proxied to the + * upstream. + */ + auth_mechanism?: Shared.AuthMechanism | null; + + /** + * Additional headers applied to upstream requests after the credential. At most 8 + * entries. + */ + custom_headers?: Array | null; + /** * Optional description for this MCP configuration. */ @@ -222,6 +271,18 @@ export interface McpConfigUpdateParams { */ allowed_tools?: Array | null; + /** + * Defines how the primary credential is applied to requests proxied to the + * upstream. + */ + auth_mechanism?: Shared.AuthMechanism | null; + + /** + * New list of additional headers. Replaces the existing list entirely; use an + * empty list to clear all custom headers. At most 8 entries. + */ + custom_headers?: Array | null; + /** * New description for this MCP configuration. */ diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 9e83d3071..894ea9fc2 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -152,6 +152,24 @@ export namespace AgentSource { } } +/** + * Defines how the primary credential is applied to requests proxied to the + * upstream. + */ +export interface AuthMechanism { + /** + * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For + * 'basic', store the secret as plain 'user:pass'; the proxy base64-encodes it. + */ + type: string; + + /** + * The header name (e.g., 'x-api-key'). Required for 'header' type; invalid for + * other types. + */ + key?: string | null; +} + export interface BrokerMount { /** * The ID of the axon event stream to mount onto the Devbox. @@ -162,20 +180,20 @@ export interface BrokerMount { /** * Binary to launch the agent (e.g., 'opencode'). Used by protocols that launch a - * subprocess (acp, claude_json, codex_json). + * subprocess (acp, claude_json, codex_json, pi_json). */ agent_binary?: string | null; /** * Arguments to pass to the agent command (e.g., ['acp']). Used by protocols that - * launch a subprocess (acp, claude_json, codex_json). + * launch a subprocess (acp, claude_json, codex_json, pi_json). */ launch_args?: Array | null; /** * The protocol used by the broker to deliver events to the agent. */ - protocol?: 'acp' | 'claude_json' | 'codex_json' | null; + protocol?: 'acp' | 'claude_json' | 'codex_json' | 'pi_json' | null; /** * Working directory in which to launch the agent binary. Defaults to the home @@ -218,6 +236,30 @@ export interface CodeMountParameters { install_command?: string | null; } +/** + * An additional header applied to upstream requests alongside the primary + * credential. The value comes from an account secret or a literal string; exactly + * one of 'secret' and 'value' must be set. + */ +export interface CustomHeader { + /** + * The header name (e.g., 'DD-APPLICATION-KEY'). + */ + name: string; + + /** + * Account secret providing the header value. Accepts a secret name or 'sec*' id on + * writes; reads always return the 'sec*' id. + */ + secret?: string | null; + + /** + * Literal header value. Stored in plaintext and returned by reads - use 'secret' + * for credentials or other sensitive values. + */ + value?: string | null; +} + /** * LaunchParameters enable you to customize the resources available to your Devbox * as well as the environment set up that should be completed before the Devbox is diff --git a/src/version.ts b/src/version.ts index df29c98cf..ec0d2ee29 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '1.28.0'; // x-release-please-version +export const VERSION = '1.29.0'; // x-release-please-version diff --git a/tests/api-resources/axons/axons.test.ts b/tests/api-resources/axons/axons.test.ts index c0e97978b..4f67d7ec7 100644 --- a/tests/api-resources/axons/axons.test.ts +++ b/tests/api-resources/axons/axons.test.ts @@ -87,6 +87,24 @@ describe('resource axons', () => { ).rejects.toThrow(Runloop.NotFoundError); }); + test('delete', async () => { + const responsePromise = client.axons.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); + }); + + test('delete: request options instead of 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.axons.delete('id', { path: '/_stainless_unknown_path' })).rejects.toThrow( + Runloop.NotFoundError, + ); + }); + test('publish: only required params', async () => { const responsePromise = client.axons.publish('id', { event_type: 'event_type', diff --git a/tests/api-resources/gateway-configs.test.ts b/tests/api-resources/gateway-configs.test.ts index 18f0eac1a..0deed0553 100644 --- a/tests/api-resources/gateway-configs.test.ts +++ b/tests/api-resources/gateway-configs.test.ts @@ -29,6 +29,13 @@ describe('resource gatewayConfigs', () => { auth_mechanism: { type: 'type', key: 'key' }, endpoint: 'endpoint', name: 'name', + custom_headers: [ + { + name: 'name', + secret: 'secret', + value: 'value', + }, + ], description: 'description', }); }); @@ -76,6 +83,13 @@ describe('resource gatewayConfigs', () => { 'id', { auth_mechanism: { type: 'type', key: 'key' }, + custom_headers: [ + { + name: 'name', + secret: 'secret', + value: 'value', + }, + ], description: 'description', endpoint: 'endpoint', name: 'name', diff --git a/tests/api-resources/mcp-configs.test.ts b/tests/api-resources/mcp-configs.test.ts index 8f37db19f..e0d21d97e 100644 --- a/tests/api-resources/mcp-configs.test.ts +++ b/tests/api-resources/mcp-configs.test.ts @@ -29,6 +29,14 @@ describe('resource mcpConfigs', () => { allowed_tools: ['string'], endpoint: 'endpoint', name: 'name', + auth_mechanism: { type: 'type', key: 'key' }, + custom_headers: [ + { + name: 'name', + secret: 'secret', + value: 'value', + }, + ], description: 'description', }); }); @@ -76,6 +84,14 @@ describe('resource mcpConfigs', () => { 'id', { allowed_tools: ['string'], + auth_mechanism: { type: 'type', key: 'key' }, + custom_headers: [ + { + name: 'name', + secret: 'secret', + value: 'value', + }, + ], description: 'description', endpoint: 'endpoint', name: 'name',