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 @@
{
".": "0.62.0"
".": "0.63.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 92
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-f1d928f705d6771a22fe701dfb8c0c66aabbd0dd6d17e3fa09b8eb3a48259a84.yml
openapi_spec_hash: 12dc18a4da3f084fee3d2c5f428e1df3
config_hash: f9f7bc60c36f103c77333d9149cd3e46
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-6b65a42b74406a77acb03ddb582288396d7af64df16eebf887c77246d3a54470.yml
openapi_spec_hash: aeb9f595d53412926ef507174f33a1a1
config_hash: f008c82c6ae5099c9a4b8e1fce1e15f1
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 0.63.0 (2025-10-02)

Full Changelog: [v0.62.0...v0.63.0](https://github.com/runloopai/api-client-python/compare/v0.62.0...v0.63.0)

### Features

* **api:** api update ([dbf7a2e](https://github.com/runloopai/api-client-python/commit/dbf7a2ea929d3832faec4241f8b8831c97c1755a))
* **api:** api update ([fff1e21](https://github.com/runloopai/api-client-python/commit/fff1e210bf02f2a8be0cb7fc6d2fe0b04e28bf03))

## 0.62.0 (2025-10-01)

Full Changelog: [v0.61.0...v0.62.0](https://github.com/runloopai/api-client-python/compare/v0.61.0...v0.62.0)
Expand Down
10 changes: 9 additions & 1 deletion api.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# Shared Types

```python
from runloop_api_client.types import AfterIdle, CodeMountParameters, LaunchParameters, RunProfile
from runloop_api_client.types import (
AfterIdle,
AgentMountParameters,
CodeMountParameters,
LaunchParameters,
Mount,
ObjectMountParameters,
RunProfile,
)
```

# Benchmarks
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "runloop_api_client"
version = "0.62.0"
version = "0.63.0"
description = "The official Python library for the runloop API"
dynamic = ["readme"]
license = "MIT"
Expand All @@ -9,7 +9,7 @@ authors = [
]
dependencies = [
"httpx>=0.23.0, <1",
"pydantic>=1.9.0, <2.11",
"pydantic>=1.9.0, <3",
"typing-extensions>=4.10, <5",
"anyio>=3.5.0, <5",
"distro>=1.7.0, <2",
Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "runloop_api_client"
__version__ = "0.62.0" # x-release-please-version
__version__ = "0.63.0" # x-release-please-version
13 changes: 11 additions & 2 deletions src/runloop_api_client/resources/devboxes/devboxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
from ...lib.polling_async import async_poll_until
from ...types.devbox_view import DevboxView
from ...types.devbox_tunnel_view import DevboxTunnelView
from ...types.shared_params.mount import Mount
from ...types.devbox_snapshot_view import DevboxSnapshotView
from ...types.shared.launch_parameters import LaunchParameters as SharedLaunchParameters
from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
Expand Down Expand Up @@ -185,6 +186,7 @@ def create(
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
mounts: Optional[Iterable[Mount]] | Omit = omit,
name: Optional[str] | Omit = omit,
repo_connection_id: Optional[str] | Omit = omit,
secrets: Optional[Dict[str, str]] | Omit = omit,
Expand Down Expand Up @@ -228,6 +230,8 @@ def create(

metadata: User defined metadata to attach to the devbox for organization.

mounts: A list of file system mounts to be included in the Devbox.

name: (Optional) A user specified name to give the Devbox.

repo_connection_id: Repository connection id the devbox should source its base image from.
Expand Down Expand Up @@ -262,6 +266,7 @@ def create(
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"mounts": mounts,
"name": name,
"repo_connection_id": repo_connection_id,
"secrets": secrets,
Expand Down Expand Up @@ -740,7 +745,7 @@ def execute(
specified the command is run from the directory based on the recent state of the
persistent shell.

command_id: The command ID for idempotency and tracking
command_id: The command ID in UUIDv7 string format for idempotency and tracking

optimistic_timeout: Timeout in seconds to wait for command completion. Operation is not killed. Max
is 600 seconds.
Expand Down Expand Up @@ -1633,6 +1638,7 @@ async def create(
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
mounts: Optional[Iterable[Mount]] | Omit = omit,
name: Optional[str] | Omit = omit,
repo_connection_id: Optional[str] | Omit = omit,
secrets: Optional[Dict[str, str]] | Omit = omit,
Expand Down Expand Up @@ -1676,6 +1682,8 @@ async def create(

metadata: User defined metadata to attach to the devbox for organization.

mounts: A list of file system mounts to be included in the Devbox.

name: (Optional) A user specified name to give the Devbox.

repo_connection_id: Repository connection id the devbox should source its base image from.
Expand Down Expand Up @@ -1710,6 +1718,7 @@ async def create(
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"mounts": mounts,
"name": name,
"repo_connection_id": repo_connection_id,
"secrets": secrets,
Expand Down Expand Up @@ -2187,7 +2196,7 @@ async def execute(
specified the command is run from the directory based on the recent state of the
persistent shell.

command_id: The command ID for idempotency and tracking
command_id: The command ID in UUIDv7 string format for idempotency and tracking

optimistic_timeout: Timeout in seconds to wait for command completion. Operation is not killed. Max
is 600 seconds.
Expand Down
18 changes: 2 additions & 16 deletions src/runloop_api_client/resources/repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,6 @@ def inspect(
self,
id: str,
*,
blueprint_id: Optional[str] | Omit = omit,
github_auth_token: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand All @@ -259,8 +258,6 @@ def inspect(
repo's technical stack and developer environment requirements.

Args:
blueprint_id: ID of blueprint to use as base for resulting RepositoryVersion blueprint.

github_auth_token: GitHub authentication token for accessing private repositories.

extra_headers: Send extra headers
Expand All @@ -278,11 +275,7 @@ def inspect(
return self._post(
f"/v1/repositories/{id}/inspect",
body=maybe_transform(
{
"blueprint_id": blueprint_id,
"github_auth_token": github_auth_token,
},
repository_inspect_params.RepositoryInspectParams,
{"github_auth_token": github_auth_token}, repository_inspect_params.RepositoryInspectParams
),
options=make_request_options(
extra_headers=extra_headers,
Expand Down Expand Up @@ -596,7 +589,6 @@ async def inspect(
self,
id: str,
*,
blueprint_id: Optional[str] | Omit = omit,
github_auth_token: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand All @@ -611,8 +603,6 @@ async def inspect(
repo's technical stack and developer environment requirements.

Args:
blueprint_id: ID of blueprint to use as base for resulting RepositoryVersion blueprint.

github_auth_token: GitHub authentication token for accessing private repositories.

extra_headers: Send extra headers
Expand All @@ -630,11 +620,7 @@ async def inspect(
return await self._post(
f"/v1/repositories/{id}/inspect",
body=await async_maybe_transform(
{
"blueprint_id": blueprint_id,
"github_auth_token": github_auth_token,
},
repository_inspect_params.RepositoryInspectParams,
{"github_auth_token": github_auth_token}, repository_inspect_params.RepositoryInspectParams
),
options=make_request_options(
extra_headers=extra_headers,
Expand Down
3 changes: 3 additions & 0 deletions src/runloop_api_client/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
from __future__ import annotations

from .shared import (
Mount as Mount,
AfterIdle as AfterIdle,
RunProfile as RunProfile,
LaunchParameters as LaunchParameters,
CodeMountParameters as CodeMountParameters,
AgentMountParameters as AgentMountParameters,
ObjectMountParameters as ObjectMountParameters,
)
from .devbox_view import DevboxView as DevboxView
from .object_view import ObjectView as ObjectView
Expand Down
4 changes: 4 additions & 0 deletions src/runloop_api_client/types/devbox_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from typing import Dict, Iterable, Optional
from typing_extensions import TypedDict

from .shared_params.mount import Mount
from .shared_params.launch_parameters import LaunchParameters
from .shared_params.code_mount_parameters import CodeMountParameters

Expand Down Expand Up @@ -49,6 +50,9 @@ class DevboxCreateParams(TypedDict, total=False):
metadata: Optional[Dict[str, str]]
"""User defined metadata to attach to the devbox for organization."""

mounts: Optional[Iterable[Mount]]
"""A list of file system mounts to be included in the Devbox."""

name: Optional[str]
"""(Optional) A user specified name to give the Devbox."""

Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/types/devbox_execute_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class DevboxExecuteParams(TypedDict, total=False):
"""

command_id: Required[str]
"""The command ID for idempotency and tracking"""
"""The command ID in UUIDv7 string format for idempotency and tracking"""

optimistic_timeout: Optional[int]
"""Timeout in seconds to wait for command completion.
Expand Down
3 changes: 0 additions & 3 deletions src/runloop_api_client/types/repository_inspect_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,5 @@


class RepositoryInspectParams(TypedDict, total=False):
blueprint_id: Optional[str]
"""ID of blueprint to use as base for resulting RepositoryVersion blueprint."""

github_auth_token: Optional[str]
"""GitHub authentication token for accessing private repositories."""
3 changes: 3 additions & 0 deletions src/runloop_api_client/types/shared/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .mount import Mount as Mount
from .after_idle import AfterIdle as AfterIdle
from .run_profile import RunProfile as RunProfile
from .launch_parameters import LaunchParameters as LaunchParameters
from .code_mount_parameters import CodeMountParameters as CodeMountParameters
from .agent_mount_parameters import AgentMountParameters as AgentMountParameters
from .object_mount_parameters import ObjectMountParameters as ObjectMountParameters
21 changes: 21 additions & 0 deletions src/runloop_api_client/types/shared/agent_mount_parameters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional
from typing_extensions import Literal

from ..._models import BaseModel

__all__ = ["AgentMountParameters"]


class AgentMountParameters(BaseModel):
agent_id: str
"""The ID of the agent to mount."""

type: Literal["agent_mount"]

agent_path: Optional[str] = None
"""Optional path to mount the agent on the Devbox.

Required for git and object agents. Use absolute path (e.g., /home/user/agent)
"""
12 changes: 12 additions & 0 deletions src/runloop_api_client/types/shared/mount.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Union
from typing_extensions import Annotated, TypeAlias

from ..._utils import PropertyInfo
from .agent_mount_parameters import AgentMountParameters
from .object_mount_parameters import ObjectMountParameters

__all__ = ["Mount"]

Mount: TypeAlias = Annotated[Union[ObjectMountParameters, AgentMountParameters], PropertyInfo(discriminator="type")]
21 changes: 21 additions & 0 deletions src/runloop_api_client/types/shared/object_mount_parameters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing_extensions import Literal

from ..._models import BaseModel

__all__ = ["ObjectMountParameters"]


class ObjectMountParameters(BaseModel):
object_id: str
"""The ID of the object to write."""

object_path: str
"""The path to write the object on the Devbox.

Use absolute path of object (ie /home/user/object.txt, or directory if archive
/home/user/archive_dir)
"""

type: Literal["object_mount"]
3 changes: 3 additions & 0 deletions src/runloop_api_client/types/shared_params/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .mount import Mount as Mount
from .after_idle import AfterIdle as AfterIdle
from .run_profile import RunProfile as RunProfile
from .launch_parameters import LaunchParameters as LaunchParameters
from .code_mount_parameters import CodeMountParameters as CodeMountParameters
from .agent_mount_parameters import AgentMountParameters as AgentMountParameters
from .object_mount_parameters import ObjectMountParameters as ObjectMountParameters
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Optional
from typing_extensions import Literal, Required, TypedDict

__all__ = ["AgentMountParameters"]


class AgentMountParameters(TypedDict, total=False):
agent_id: Required[str]
"""The ID of the agent to mount."""

type: Required[Literal["agent_mount"]]

agent_path: Optional[str]
"""Optional path to mount the agent on the Devbox.

Required for git and object agents. Use absolute path (e.g., /home/user/agent)
"""
13 changes: 13 additions & 0 deletions src/runloop_api_client/types/shared_params/mount.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Union
from typing_extensions import TypeAlias

from .agent_mount_parameters import AgentMountParameters
from .object_mount_parameters import ObjectMountParameters

__all__ = ["Mount"]

Mount: TypeAlias = Union[ObjectMountParameters, AgentMountParameters]
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing_extensions import Literal, Required, TypedDict

__all__ = ["ObjectMountParameters"]


class ObjectMountParameters(TypedDict, total=False):
object_id: Required[str]
"""The ID of the object to write."""

object_path: Required[str]
"""The path to write the object on the Devbox.

Use absolute path of object (ie /home/user/object.txt, or directory if archive
/home/user/archive_dir)
"""

type: Required[Literal["object_mount"]]
Loading