Skip to content
Open
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-a9327279b1ba17f0983d92a3065b04a2bc1b5e5e830cf099aef4f79072fe4075.yml
openapi_spec_hash: b63815af36cf18c8cc70be416f9c0f71
config_hash: 2b0535779b180339d10766ba74a96700
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## 1.29.0 (2026-08-10)

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))
* **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))


### Bug Fixes

* **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
2 changes: 2 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,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
2 changes: 2 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
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
5 changes: 5 additions & 0 deletions src/resources/devboxes/devboxes.ts
Original file line number Diff line number Diff line change
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
1 change: 1 addition & 0 deletions src/resources/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export {
type AxonView,
type PublishParams,
type PublishResultView,
type AxonDeleteResponse,
type AxonListParams,
type AxonPublishParams,
type AxonSubscribeSseParams,
Expand Down
6 changes: 3 additions & 3 deletions src/resources/shared.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<string> | 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
Expand Down
2 changes: 1 addition & 1 deletion src/version.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const VERSION = '1.28.0'; // x-release-please-version
export const VERSION = '1.29.0'; // x-release-please-version
18 changes: 18 additions & 0 deletions tests/api-resources/axons/axons.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down