Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.28.0"
".": "1.29.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
4 changes: 4 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ Types:
- <code><a href="./src/resources/shared.ts">AfterIdle</a></code>
- <code><a href="./src/resources/shared.ts">AgentMount</a></code>
- <code><a href="./src/resources/shared.ts">AgentSource</a></code>
- <code><a href="./src/resources/shared.ts">AuthMechanism</a></code>
- <code><a href="./src/resources/shared.ts">BrokerMount</a></code>
- <code><a href="./src/resources/shared.ts">CodeMountParameters</a></code>
- <code><a href="./src/resources/shared.ts">CustomHeader</a></code>
- <code><a href="./src/resources/shared.ts">LaunchParameters</a></code>
- <code><a href="./src/resources/shared.ts">LifecycleConfiguration</a></code>
- <code><a href="./src/resources/shared.ts">LifecycleHooks</a></code>
Expand Down Expand Up @@ -105,12 +107,14 @@ Types:
- <code><a href="./src/resources/axons/axons.ts">AxonView</a></code>
- <code><a href="./src/resources/axons/axons.ts">PublishParams</a></code>
- <code><a href="./src/resources/axons/axons.ts">PublishResultView</a></code>
- <code><a href="./src/resources/axons/axons.ts">AxonDeleteResponse</a></code>

Methods:

- <code title="post /v1/axons">client.axons.<a href="./src/resources/axons/axons.ts">create</a>({ ...params }) -> AxonView</code>
- <code title="get /v1/axons/{id}">client.axons.<a href="./src/resources/axons/axons.ts">retrieve</a>(id) -> AxonView</code>
- <code title="get /v1/axons">client.axons.<a href="./src/resources/axons/axons.ts">list</a>({ ...params }) -> AxonViewsAxonsCursorIDPage</code>
- <code title="delete /v1/axons/{id}">client.axons.<a href="./src/resources/axons/axons.ts">delete</a>(id) -> unknown</code>
- <code title="post /v1/axons/{id}/publish">client.axons.<a href="./src/resources/axons/axons.ts">publish</a>(id, { ...params }) -> PublishResultView</code>
- <code title="get /v1/axons/{id}/subscribe/sse">client.axons.<a href="./src/resources/axons/axons.ts">subscribeSse</a>(id, { ...params }) -> AxonEventView</code>

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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 <support@runloop.ai>",
"types": "dist/sdk.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-server/manifest.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-server/package.json
Original file line number Diff line number Diff line change
@@ -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 <support@runloop.ai>",
"types": "dist/index.d.ts",
Expand Down
1 change: 0 additions & 1 deletion packages/mcp-server/src/code-tool-worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
6 changes: 0 additions & 6 deletions packages/mcp-server/src/methods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp-server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
4 changes: 4 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ import {
} from './resources/secrets';
import {
AxonCreateParams,
AxonDeleteResponse,
AxonEventView,
AxonListParams,
AxonListView,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
10 changes: 10 additions & 0 deletions src/resources/axons/axons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<unknown> {
return this._client.delete(`/v1/axons/${id}`, options);
}

/**
* [Beta] Publish an event to a specified axon.
*/
Expand Down Expand Up @@ -220,6 +227,8 @@ export interface PublishResultView {
timestamp_ms: number;
}

export type AxonDeleteResponse = unknown;

export interface AxonCreateParams {
/**
* (Optional) Name for the axon.
Expand Down Expand Up @@ -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,
Expand Down
1 change: 1 addition & 0 deletions src/resources/axons/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export {
type AxonView,
type PublishParams,
type PublishResultView,
type AxonDeleteResponse,
type AxonListParams,
type AxonPublishParams,
type AxonSubscribeSseParams,
Expand Down
2 changes: 1 addition & 1 deletion src/resources/blueprints.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
15 changes: 11 additions & 4 deletions src/resources/devboxes/devboxes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<DevboxView>;
update(id: string, options?: Core.RequestOptions): Core.APIPromise<DevboxView>;
Expand Down Expand Up @@ -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.
*
Expand Down Expand Up @@ -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;
}
Expand Down
Loading