From 3d08f4d5771cb771101fb479d5bb8d72b62a2092 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2026 18:40:44 +0000 Subject: [PATCH 01/12] feat(converter): add Helm chart, container image, and enable in dev (#10405) --- .stats.yml | 4 ++-- src/resources/blueprints.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 63705699e..25a63951c 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 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-3fbf64145b022650227fd83c53efcf2a514638e932efc2277490280fd81c083e.yml +openapi_spec_hash: 4e673e5a85fc95f1c6dcc89d6a59d004 config_hash: 6d102da8b9fcc3d0deb42d7a707e78c6 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. From 84893cc2ca7e97176bb24c917b1fcd08c1cc2fd5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2026 22:52:34 +0000 Subject: [PATCH 02/12] feat(broker): plumb Pi protocol selection (#10256) --- .stats.yml | 4 ++-- src/resources/shared.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 25a63951c..552a016d1 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-3fbf64145b022650227fd83c53efcf2a514638e932efc2277490280fd81c083e.yml -openapi_spec_hash: 4e673e5a85fc95f1c6dcc89d6a59d004 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-655842d2f92e9a3525185c38986cfe40c08b4bab35d39384d519bc502f415904.yml +openapi_spec_hash: fabc1067256c27f29fc1225c1ea871bf config_hash: 6d102da8b9fcc3d0deb42d7a707e78c6 diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 9e83d3071..97e1af3f0 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -162,20 +162,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 From 0842f402cc4a7ddc73d89e4643c3a5984e1bdb4a Mon Sep 17 00:00:00 2001 From: tode-rl Date: Tue, 4 Aug 2026 10:08:55 -0700 Subject: [PATCH 03/12] fix(mcp): remove stale createFromInspection metadata (#811) Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> --- packages/mcp-server/src/code-tool-worker.ts | 1 - packages/mcp-server/src/methods.ts | 6 ------ 2 files changed, 7 deletions(-) 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', From b85737ef21a61dd4ed6c0f4c669cc313346e3af4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 9 Aug 2026 20:09:10 +0000 Subject: [PATCH 04/12] feat(devbox): recover resume provisioning failures (#10597) --- .stats.yml | 4 ++-- src/resources/devboxes/devboxes.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 552a016d1..2e8657507 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-655842d2f92e9a3525185c38986cfe40c08b4bab35d39384d519bc502f415904.yml -openapi_spec_hash: fabc1067256c27f29fc1225c1ea871bf +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-3dc3735bd6dde301483f325e9be5cbae2aabdf9988b7e5a1da920d41e8bb380f.yml +openapi_spec_hash: 70e2f6ccb848ff142fbfa020329951aa config_hash: 6d102da8b9fcc3d0deb42d7a707e78c6 diff --git a/src/resources/devboxes/devboxes.ts b/src/resources/devboxes/devboxes.ts index af8bc6aa6..d81f2f84b 100644 --- a/src/resources/devboxes/devboxes.ts +++ b/src/resources/devboxes/devboxes.ts @@ -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. * From e82b606f189f91751fb636a2b8878daea69a74af Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 21:58:59 +0000 Subject: [PATCH 05/12] feat(axon): add registry delete endpoint (#10769) --- .stats.yml | 8 ++++---- api.md | 2 ++ src/index.ts | 2 ++ src/resources/axons/axons.ts | 10 ++++++++++ src/resources/axons/index.ts | 1 + src/resources/index.ts | 1 + tests/api-resources/axons/axons.test.ts | 18 ++++++++++++++++++ 7 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2e8657507..02013546c 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-3dc3735bd6dde301483f325e9be5cbae2aabdf9988b7e5a1da920d41e8bb380f.yml -openapi_spec_hash: 70e2f6ccb848ff142fbfa020329951aa -config_hash: 6d102da8b9fcc3d0deb42d7a707e78c6 +configured_endpoints: 121 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-a9327279b1ba17f0983d92a3065b04a2bc1b5e5e830cf099aef4f79072fe4075.yml +openapi_spec_hash: b63815af36cf18c8cc70be416f9c0f71 +config_hash: 2b0535779b180339d10766ba74a96700 diff --git a/api.md b/api.md index 3af4951ad..563a339ee 100644 --- a/api.md +++ b/api.md @@ -105,12 +105,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/src/index.ts b/src/index.ts index b4ac078fd..ea7c1bce1 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, 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/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/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', From e99087b1a297230510180d041e8da895d993c552 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 22:02:30 +0000 Subject: [PATCH 06/12] fix(devbox): make Devbox update API patch-like (#10582) --- .stats.yml | 4 ++-- src/resources/devboxes/devboxes.ts | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index 02013546c..360b9980f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 121 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-a9327279b1ba17f0983d92a3065b04a2bc1b5e5e830cf099aef4f79072fe4075.yml -openapi_spec_hash: b63815af36cf18c8cc70be416f9c0f71 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-49fd19a6c2b93ae0af51ae79c2a2a1a67adaf56611840c4d30b651729b090c63.yml +openapi_spec_hash: 2d30d0e7c9061c5f748fcc915f7af4e9 config_hash: 2b0535779b180339d10766ba74a96700 diff --git a/src/resources/devboxes/devboxes.ts b/src/resources/devboxes/devboxes.ts index d81f2f84b..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; @@ -1295,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; } From e239659610d8a44f2075db23dccea06e5961e9d7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 21:39:15 +0000 Subject: [PATCH 07/12] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 360b9980f..12a2b6c9c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 121 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-49fd19a6c2b93ae0af51ae79c2a2a1a67adaf56611840c4d30b651729b090c63.yml -openapi_spec_hash: 2d30d0e7c9061c5f748fcc915f7af4e9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-093c44f8ed1154c727f281b89d15dcc628edb2fb705c0155ebcdfa48f4a81d48.yml +openapi_spec_hash: 9fbaad9832de897a6e6e319483ddeb6c config_hash: 2b0535779b180339d10766ba74a96700 From 6ad00478d8c7853bcb173ea1579d0e1da8825dd3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2026 00:35:47 +0000 Subject: [PATCH 08/12] feat(gateway): first-class BASIC auth mechanism (#11063) --- .stats.yml | 4 ++-- src/resources/gateway-configs.ts | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.stats.yml b/.stats.yml index 12a2b6c9c..f0351c489 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 121 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-093c44f8ed1154c727f281b89d15dcc628edb2fb705c0155ebcdfa48f4a81d48.yml -openapi_spec_hash: 9fbaad9832de897a6e6e319483ddeb6c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-7b9d926e46ee0dca27286795e6d90d3ba75643c897ea21c3ce05a7d999a1d33b.yml +openapi_spec_hash: 19d9c8ceae252900eca5fbb84eb19285 config_hash: 2b0535779b180339d10766ba74a96700 diff --git a/src/resources/gateway-configs.ts b/src/resources/gateway-configs.ts index 69d77e1cc..faace6235 100644 --- a/src/resources/gateway-configs.ts +++ b/src/resources/gateway-configs.ts @@ -113,12 +113,13 @@ export namespace GatewayConfigCreateParameters { */ export interface AuthMechanism { /** - * The type of authentication mechanism: 'header', 'bearer'. + * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For + * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. */ type: string; /** - * For 'header' type: the header name (e.g., 'x-api-key'). + * Only valid for 'header' type: the header name (e.g., 'x-api-key'). */ key?: string | null; } @@ -178,12 +179,13 @@ export namespace GatewayConfigUpdateParameters { */ export interface AuthMechanism { /** - * The type of authentication mechanism: 'header', 'bearer'. + * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For + * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. */ type: string; /** - * For 'header' type: the header name (e.g., 'x-api-key'). + * Only valid for 'header' type: the header name (e.g., 'x-api-key'). */ key?: string | null; } @@ -238,12 +240,13 @@ export namespace GatewayConfigView { */ export interface AuthMechanism { /** - * The type of authentication mechanism: 'header', 'bearer'. + * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For + * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. */ type: string; /** - * For 'header' type: the header name (e.g., 'x-api-key'). + * Only valid for 'header' type: the header name (e.g., 'x-api-key'). */ key?: string | null; } @@ -280,12 +283,13 @@ export namespace GatewayConfigCreateParams { */ export interface AuthMechanism { /** - * The type of authentication mechanism: 'header', 'bearer'. + * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For + * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. */ type: string; /** - * For 'header' type: the header name (e.g., 'x-api-key'). + * Only valid for 'header' type: the header name (e.g., 'x-api-key'). */ key?: string | null; } @@ -321,12 +325,13 @@ export namespace GatewayConfigUpdateParams { */ export interface AuthMechanism { /** - * The type of authentication mechanism: 'header', 'bearer'. + * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For + * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. */ type: string; /** - * For 'header' type: the header name (e.g., 'x-api-key'). + * Only valid for 'header' type: the header name (e.g., 'x-api-key'). */ key?: string | null; } From 378d2df40b5580bf09e9b394e75f5c5763418be6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2026 21:49:58 +0000 Subject: [PATCH 09/12] =?UTF-8?q?feat(config):=20custom=5Fheaders=20on=20M?= =?UTF-8?q?cpConfig/GatewayConfig=20=E2=80=94=20persistence,=20REST,=20val?= =?UTF-8?q?idation,=20provisioner,=20OpenAPI=20(#11096)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .stats.yml | 6 ++-- api.md | 1 + src/index.ts | 1 + src/resources/gateway-configs.ts | 32 +++++++++++++++++++++ src/resources/mcp-configs.ts | 32 +++++++++++++++++++++ src/resources/shared.ts | 24 ++++++++++++++++ tests/api-resources/gateway-configs.test.ts | 14 +++++++++ tests/api-resources/mcp-configs.test.ts | 14 +++++++++ 8 files changed, 121 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index f0351c489..3a806956b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 121 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-7b9d926e46ee0dca27286795e6d90d3ba75643c897ea21c3ce05a7d999a1d33b.yml -openapi_spec_hash: 19d9c8ceae252900eca5fbb84eb19285 -config_hash: 2b0535779b180339d10766ba74a96700 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-ae0f5383aa4cb3defa2a011375d3524b89a9fed30e2ef6c8d225192a4ea8eb1f.yml +openapi_spec_hash: a4f906d2af71050ead8673bad44a65d7 +config_hash: 25409d286d89763213d1155725bba77a diff --git a/api.md b/api.md index 563a339ee..ff61f13fb 100644 --- a/api.md +++ b/api.md @@ -7,6 +7,7 @@ Types: - AgentSource - BrokerMount - CodeMountParameters +- CustomHeader - LaunchParameters - LifecycleConfiguration - LifecycleHooks diff --git a/src/index.ts b/src/index.ts index ea7c1bce1..a3bcca743 100644 --- a/src/index.ts +++ b/src/index.ts @@ -834,6 +834,7 @@ export declare namespace Runloop { export type AgentSource = API.AgentSource; 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/gateway-configs.ts b/src/resources/gateway-configs.ts index faace6235..fb081eeb2 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 { @@ -100,6 +101,12 @@ export interface GatewayConfigCreateParameters { */ 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. */ @@ -156,6 +163,12 @@ export interface GatewayConfigUpdateParameters { */ auth_mechanism?: GatewayConfigUpdateParameters.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. */ @@ -228,6 +241,13 @@ export interface GatewayConfigView { */ account_id?: string | null; + /** + * Additional headers applied to proxied requests after the auth mechanism. + * Secret-backed entries reference the secret by 'sec\_' id; values are never + * returned. + */ + custom_headers?: Array | null; + /** * Optional description for this gateway configuration. */ @@ -270,6 +290,12 @@ 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. */ @@ -302,6 +328,12 @@ export interface GatewayConfigUpdateParams { */ auth_mechanism?: GatewayConfigUpdateParams.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. */ diff --git a/src/resources/mcp-configs.ts b/src/resources/mcp-configs.ts index 705a7a6a0..fe560fef6 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,12 @@ export interface McpConfigCreateParameters { */ name: string; + /** + * 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 +143,12 @@ export interface McpConfigUpdateParameters { */ allowed_tools?: Array | 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. */ @@ -184,6 +197,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 +229,12 @@ export interface McpConfigCreateParams { */ name: string; + /** + * 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 +248,12 @@ export interface McpConfigUpdateParams { */ allowed_tools?: Array | 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 97e1af3f0..87a07782e 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -218,6 +218,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/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..97462bb28 100644 --- a/tests/api-resources/mcp-configs.test.ts +++ b/tests/api-resources/mcp-configs.test.ts @@ -29,6 +29,13 @@ describe('resource mcpConfigs', () => { allowed_tools: ['string'], endpoint: 'endpoint', name: 'name', + custom_headers: [ + { + name: 'name', + secret: 'secret', + value: 'value', + }, + ], description: 'description', }); }); @@ -76,6 +83,13 @@ describe('resource mcpConfigs', () => { 'id', { allowed_tools: ['string'], + custom_headers: [ + { + name: 'name', + secret: 'secret', + value: 'value', + }, + ], description: 'description', endpoint: 'endpoint', name: 'name', From d81080bcce7704b498f7242a4738eb767bcb5dd5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2026 23:49:04 +0000 Subject: [PATCH 10/12] feat(mcp): configurable auth_mechanism on McpConfig, shared shape with gateway (#11113) --- .stats.yml | 6 +- api.md | 1 + src/index.ts | 1 + src/resources/gateway-configs.ts | 112 ++---------------------- src/resources/mcp-configs.ts | 29 ++++++ src/resources/shared.ts | 17 ++++ tests/api-resources/mcp-configs.test.ts | 2 + 7 files changed, 62 insertions(+), 106 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3a806956b..037095a6e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 121 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-ae0f5383aa4cb3defa2a011375d3524b89a9fed30e2ef6c8d225192a4ea8eb1f.yml -openapi_spec_hash: a4f906d2af71050ead8673bad44a65d7 -config_hash: 25409d286d89763213d1155725bba77a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-2b4c651a27238a14ac7bd03ba582183d14f9622bdb5ea292c2cea97acc4c727e.yml +openapi_spec_hash: 8a933236116d07c8a060b6eadd205feb +config_hash: 7afcebea2dd638ed0cf0d5367f820f73 diff --git a/api.md b/api.md index ff61f13fb..7f2f6b985 100644 --- a/api.md +++ b/api.md @@ -5,6 +5,7 @@ Types: - AfterIdle - AgentMount - AgentSource +- AuthMechanism - BrokerMount - CodeMountParameters - CustomHeader diff --git a/src/index.ts b/src/index.ts index a3bcca743..b0692cf5d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -832,6 +832,7 @@ 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; diff --git a/src/resources/gateway-configs.ts b/src/resources/gateway-configs.ts index fb081eeb2..0ef501ac1 100644 --- a/src/resources/gateway-configs.ts +++ b/src/resources/gateway-configs.ts @@ -88,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'). @@ -113,25 +113,6 @@ export interface GatewayConfigCreateParameters { description?: string | null; } -export namespace GatewayConfigCreateParameters { - /** - * How credentials should be applied to proxied requests. Specify the type - * ('header', 'bearer') and optional key field. - */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For - * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. - */ - type: string; - - /** - * Only valid for 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } -} - /** * A paginated list of GatewayConfigs. */ @@ -158,10 +139,10 @@ 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 @@ -185,25 +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', or 'basic'. For - * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. - */ - type: string; - - /** - * Only valid 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 @@ -218,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). @@ -254,30 +216,12 @@ export interface GatewayConfigView { description?: string | null; } -export namespace GatewayConfigView { - /** - * How credentials should be applied to proxied requests. - */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For - * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. - */ - type: string; - - /** - * Only valid for 'header' type: the header name (e.g., 'x-api-key'). - */ - key?: string | null; - } -} - 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'). @@ -302,31 +246,12 @@ export interface GatewayConfigCreateParams { description?: string | null; } -export namespace GatewayConfigCreateParams { - /** - * How credentials should be applied to proxied requests. Specify the type - * ('header', 'bearer') and optional key field. - */ - export interface AuthMechanism { - /** - * The type of authentication mechanism: 'header', 'bearer', or 'basic'. For - * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. - */ - type: string; - - /** - * Only valid 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. + * Defines how the primary credential is applied to requests proxied to the + * upstream. */ - auth_mechanism?: GatewayConfigUpdateParams.AuthMechanism | null; + auth_mechanism?: Shared.AuthMechanism | null; /** * New list of additional headers. Replaces the existing list entirely; use an @@ -350,25 +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', or 'basic'. For - * 'basic', store the secret as plain 'user:pass'; the gateway base64-encodes it. - */ - type: string; - - /** - * Only valid 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/mcp-configs.ts b/src/resources/mcp-configs.ts index fe560fef6..6e763c1c6 100644 --- a/src/resources/mcp-configs.ts +++ b/src/resources/mcp-configs.ts @@ -100,6 +100,12 @@ 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. @@ -143,6 +149,12 @@ 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. @@ -182,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). */ @@ -229,6 +246,12 @@ 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. @@ -248,6 +271,12 @@ 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. diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 87a07782e..adc02842f 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -152,6 +152,23 @@ 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; + + /** + * Only valid for 'header' type: the header name (e.g., 'x-api-key'). + */ + key?: string | null; +} + export interface BrokerMount { /** * The ID of the axon event stream to mount onto the Devbox. diff --git a/tests/api-resources/mcp-configs.test.ts b/tests/api-resources/mcp-configs.test.ts index 97462bb28..e0d21d97e 100644 --- a/tests/api-resources/mcp-configs.test.ts +++ b/tests/api-resources/mcp-configs.test.ts @@ -29,6 +29,7 @@ describe('resource mcpConfigs', () => { allowed_tools: ['string'], endpoint: 'endpoint', name: 'name', + auth_mechanism: { type: 'type', key: 'key' }, custom_headers: [ { name: 'name', @@ -83,6 +84,7 @@ describe('resource mcpConfigs', () => { 'id', { allowed_tools: ['string'], + auth_mechanism: { type: 'type', key: 'key' }, custom_headers: [ { name: 'name', From 9277e118b9fcd85cd05106390be0a98ed4f3a8c8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 00:36:44 +0000 Subject: [PATCH 11/12] fix(gateway): reject keyless HEADER auth_mechanism at admission and in looper (#11120) --- .stats.yml | 4 ++-- src/resources/shared.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 037095a6e..75c1b7196 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 121 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai/runloop-2b4c651a27238a14ac7bd03ba582183d14f9622bdb5ea292c2cea97acc4c727e.yml -openapi_spec_hash: 8a933236116d07c8a060b6eadd205feb +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/src/resources/shared.ts b/src/resources/shared.ts index adc02842f..894ea9fc2 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -164,7 +164,8 @@ export interface AuthMechanism { type: string; /** - * Only valid for 'header' type: the header name (e.g., 'x-api-key'). + * The header name (e.g., 'x-api-key'). Required for 'header' type; invalid for + * other types. */ key?: string | null; } From 782516f8c37dd7b1bc739de4e6349b3dccd0ba2b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 00:37:22 +0000 Subject: [PATCH 12/12] release: 1.29.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 21 +++++++++++++++++++++ package.json | 2 +- packages/mcp-server/manifest.json | 2 +- packages/mcp-server/package.json | 2 +- packages/mcp-server/src/server.ts | 2 +- src/version.ts | 2 +- 7 files changed, 27 insertions(+), 6 deletions(-) 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/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/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/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/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