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.69.0"
".": "1.0.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 97
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-0dd27c6877ed117c50fe0af95cee4d54c646d2484368e131b8e3315eba3fffcc.yml
openapi_spec_hash: 68f663172747aef8e66f2b23289efc7b
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-cb2d725f71e87810cd872eacd70e867ca10f94980fdf9c78bb2844c02ee47bf3.yml
openapi_spec_hash: 16ce3e9184fc2afdee66db18a83a96e8
config_hash: 2363f563f42501d2b1587a4f64bdccaf
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Changelog

## 1.0.0 (2025-12-02)

Full Changelog: [v0.69.0...v1.0.0](https://github.com/runloopai/api-client-python/compare/v0.69.0...v1.0.0)

### ⚠ BREAKING CHANGES

* **devbox:** made command positional arg in exec and exec_async ([#695](https://github.com/runloopai/api-client-python/issues/695))

### Features

* **blueprints:** Add build context to the OpenAPI spec ([#6494](https://github.com/runloopai/api-client-python/issues/6494)) ([d202b94](https://github.com/runloopai/api-client-python/commit/d202b942c07614ca954a8bbe3a9a6302e9a04216))
* **devbox:** added devbox.shell(shellName) command and stateful shell class to SDK ([#696](https://github.com/runloopai/api-client-python/issues/696)) ([c1e8f09](https://github.com/runloopai/api-client-python/commit/c1e8f0965a419ff53d830ba3c43a1c9a29dae5c7))
* **devbox:** made command positional arg in exec and exec_async ([#695](https://github.com/runloopai/api-client-python/issues/695)) ([6cc8c2f](https://github.com/runloopai/api-client-python/commit/6cc8c2fd4f904e8cc4386d81558157ca6fb69bfa))
* **sdk:** added scorer classes to sdk ([#698](https://github.com/runloopai/api-client-python/issues/698)) ([85f798f](https://github.com/runloopai/api-client-python/commit/85f798f2d8a7727b783e01a260ff0a52bdf01d78))


### Bug Fixes

* **api:** don't ignore devbox keep_alive, suspend and resume in api ([fe3589f](https://github.com/runloopai/api-client-python/commit/fe3589f5fbb36a5b79f1d4a25e86f88676556fdb))
* **devbox:** launch parameter typo ([1c9c346](https://github.com/runloopai/api-client-python/commit/1c9c346e475b64fc389928fee0f7140e532c4f9c))
* **scenarios:** update parameters for manually maintained start_run_and_await_env_ready methods ([#692](https://github.com/runloopai/api-client-python/issues/692)) ([8000495](https://github.com/runloopai/api-client-python/commit/8000495f70b2e6f4f12742fb8a6d641dbbc088ca))
* **scorer:** fixed RL_TEST_CONTEXT to RL_SCORER_CONTEXT ([df43a42](https://github.com/runloopai/api-client-python/commit/df43a42a45b9ce67aba27835a41c9a0ebfc6a407))


### Chores

* **blueprints:** Add build context examples ([#694](https://github.com/runloopai/api-client-python/issues/694)) ([6e63928](https://github.com/runloopai/api-client-python/commit/6e6392864b3cde20dfea5d173fed9a156b960ccd))
* hide build context APIs ([159a38f](https://github.com/runloopai/api-client-python/commit/159a38f0980c00430a1b949541076b0d63df2df2))
* **mounts:** Update documentation for deprecated fields to direct the user to the replacement API ([4936844](https://github.com/runloopai/api-client-python/commit/4936844989ec7a0d37c835dd37b8007e8caba944))

## 0.69.0 (2025-11-21)

Full Changelog: [v0.68.0...v0.69.0](https://github.com/runloopai/api-client-python/compare/v0.68.0...v0.69.0)
Expand Down
1 change: 1 addition & 0 deletions docs/sdk/async/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ Asynchronous resource classes for working with devboxes, blueprints, snapshots,
blueprint
snapshot
storage_object
scorer

9 changes: 9 additions & 0 deletions docs/sdk/async/scorer.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Scorer
======

The ``AsyncScorer`` class provides asynchronous methods for managing custom scenario scorers.

.. automodule:: runloop_api_client.sdk.async_scorer
:members:


1 change: 1 addition & 0 deletions docs/sdk/sync/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ Synchronous resource classes for working with devboxes, blueprints, snapshots, a
blueprint
snapshot
storage_object
scorer

9 changes: 9 additions & 0 deletions docs/sdk/sync/scorer.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Scorer
======

The ``Scorer`` class provides synchronous methods for managing custom scenario scorers.

.. automodule:: runloop_api_client.sdk.scorer
:members:


13 changes: 13 additions & 0 deletions docs/sdk/types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,19 @@ These TypeDicts define parameters for storage object creation, listing, and down

.. autotypeddict:: runloop_api_client.sdk._types.SDKObjectDownloadParams

Scorer Parameters
-----------------

These TypeDicts define parameters for scorer creation, listing, updating, and validation.

.. autotypeddict:: runloop_api_client.sdk._types.SDKScorerCreateParams

.. autotypeddict:: runloop_api_client.sdk._types.SDKScorerListParams

.. autotypeddict:: runloop_api_client.sdk._types.SDKScorerUpdateParams

.. autotypeddict:: runloop_api_client.sdk._types.SDKScorerValidateParams

Core Request Options
--------------------

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "runloop_api_client"
version = "0.69.0"
version = "1.0.0"
description = "The official Python library for the runloop API"
dynamic = ["readme"]
license = "MIT"
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.69.0" # x-release-please-version
__version__ = "1.0.0" # x-release-please-version
28 changes: 0 additions & 28 deletions src/runloop_api_client/resources/blueprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,6 @@ def create(
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
secrets: Optional[Dict[str, str]] | Omit = omit,
services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
Expand Down Expand Up @@ -180,11 +179,6 @@ def create(

metadata: (Optional) User defined metadata for the Blueprint.

named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
the keys are the name used when referencing the contexts in a Dockerfile. See
Docker buildx additional contexts for details:
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context

secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
will be available to commands during the build. Secrets are NOT stored in the
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
Expand Down Expand Up @@ -224,7 +218,6 @@ def create(
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"named_build_contexts": named_build_contexts,
"secrets": secrets,
"services": services,
"system_setup_commands": system_setup_commands,
Expand Down Expand Up @@ -658,7 +651,6 @@ def preview(
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
named_build_contexts: Optional[Dict[str, blueprint_preview_params.NamedBuildContexts]] | Omit = omit,
secrets: Optional[Dict[str, str]] | Omit = omit,
services: Optional[Iterable[blueprint_preview_params.Service]] | Omit = omit,
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
Expand Down Expand Up @@ -700,11 +692,6 @@ def preview(

metadata: (Optional) User defined metadata for the Blueprint.

named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
the keys are the name used when referencing the contexts in a Dockerfile. See
Docker buildx additional contexts for details:
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context

secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
will be available to commands during the build. Secrets are NOT stored in the
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
Expand Down Expand Up @@ -740,7 +727,6 @@ def preview(
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"named_build_contexts": named_build_contexts,
"secrets": secrets,
"services": services,
"system_setup_commands": system_setup_commands,
Expand Down Expand Up @@ -791,7 +777,6 @@ async def create(
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
secrets: Optional[Dict[str, str]] | Omit = omit,
services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
Expand Down Expand Up @@ -835,11 +820,6 @@ async def create(

metadata: (Optional) User defined metadata for the Blueprint.

named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
the keys are the name used when referencing the contexts in a Dockerfile. See
Docker buildx additional contexts for details:
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context

secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
will be available to commands during the build. Secrets are NOT stored in the
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
Expand Down Expand Up @@ -879,7 +859,6 @@ async def create(
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"named_build_contexts": named_build_contexts,
"secrets": secrets,
"services": services,
"system_setup_commands": system_setup_commands,
Expand Down Expand Up @@ -1313,7 +1292,6 @@ async def preview(
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
named_build_contexts: Optional[Dict[str, blueprint_preview_params.NamedBuildContexts]] | Omit = omit,
secrets: Optional[Dict[str, str]] | Omit = omit,
services: Optional[Iterable[blueprint_preview_params.Service]] | Omit = omit,
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
Expand Down Expand Up @@ -1355,11 +1333,6 @@ async def preview(

metadata: (Optional) User defined metadata for the Blueprint.

named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
the keys are the name used when referencing the contexts in a Dockerfile. See
Docker buildx additional contexts for details:
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context

secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
will be available to commands during the build. Secrets are NOT stored in the
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
Expand Down Expand Up @@ -1395,7 +1368,6 @@ async def preview(
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"named_build_contexts": named_build_contexts,
"secrets": secrets,
"services": services,
"system_setup_commands": system_setup_commands,
Expand Down
8 changes: 4 additions & 4 deletions src/runloop_api_client/resources/devboxes/devboxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,15 +217,15 @@ def create(
successfully built Blueprint with the given name. Only one of (Snapshot ID,
Blueprint ID, Blueprint name) should be specified.

code_mounts: A list of code mounts to be included in the Devbox.
code_mounts: A list of code mounts to be included in the Devbox. Use mounts instead.

entrypoint: (Optional) When specified, the Devbox will run this script as its main
executable. The devbox lifecycle will be bound to entrypoint, shutting down when
the process is complete.

environment_variables: (Optional) Environment variables used to configure your Devbox.

file_mounts: (Optional) Map of paths and file contents to write before setup..
file_mounts: Map of paths and file contents to write before setup. Use mounts instead.

launch_parameters: Parameters to configure the resources and launch time behavior of the Devbox.

Expand Down Expand Up @@ -1755,15 +1755,15 @@ async def create(
successfully built Blueprint with the given name. Only one of (Snapshot ID,
Blueprint ID, Blueprint name) should be specified.

code_mounts: A list of code mounts to be included in the Devbox.
code_mounts: A list of code mounts to be included in the Devbox. Use mounts instead.

entrypoint: (Optional) When specified, the Devbox will run this script as its main
executable. The devbox lifecycle will be bound to entrypoint, shutting down when
the process is complete.

environment_variables: (Optional) Environment variables used to configure your Devbox.

file_mounts: (Optional) Map of paths and file contents to write before setup..
file_mounts: Map of paths and file contents to write before setup. Use mounts instead.

launch_parameters: Parameters to configure the resources and launch time behavior of the Devbox.

Expand Down
9 changes: 8 additions & 1 deletion src/runloop_api_client/sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,22 @@

from __future__ import annotations

from .sync import DevboxOps, RunloopSDK, SnapshotOps, BlueprintOps, StorageObjectOps
from .sync import DevboxOps, ScorerOps, RunloopSDK, SnapshotOps, BlueprintOps, StorageObjectOps
from .async_ import (
AsyncDevboxOps,
AsyncScorerOps,
AsyncRunloopSDK,
AsyncSnapshotOps,
AsyncBlueprintOps,
AsyncStorageObjectOps,
)
from .devbox import Devbox, NamedShell
from .scorer import Scorer
from .snapshot import Snapshot
from .blueprint import Blueprint
from .execution import Execution
from .async_devbox import AsyncDevbox, AsyncNamedShell
from .async_scorer import AsyncScorer
from .async_snapshot import AsyncSnapshot
from .storage_object import StorageObject
from .async_blueprint import AsyncBlueprint
Expand All @@ -35,6 +38,8 @@
"AsyncDevboxOps",
"BlueprintOps",
"AsyncBlueprintOps",
"ScorerOps",
"AsyncScorerOps",
"SnapshotOps",
"AsyncSnapshotOps",
"StorageObjectOps",
Expand All @@ -48,6 +53,8 @@
"AsyncExecutionResult",
"Blueprint",
"AsyncBlueprint",
"Scorer",
"AsyncScorer",
"Snapshot",
"AsyncSnapshot",
"StorageObject",
Expand Down
17 changes: 17 additions & 0 deletions src/runloop_api_client/sdk/_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from .._types import Body, Query, Headers, Timeout, NotGiven
from ..lib.polling import PollingConfig
from ..types.devboxes import DiskSnapshotListParams, DiskSnapshotUpdateParams
from ..types.scenarios import ScorerListParams, ScorerCreateParams, ScorerUpdateParams, ScorerValidateParams
from ..types.devbox_list_params import DevboxListParams
from ..types.object_list_params import ObjectListParams
from ..types.devbox_create_params import DevboxCreateParams, DevboxBaseCreateParams
Expand Down Expand Up @@ -140,3 +141,19 @@ class SDKObjectCreateParams(ObjectCreateParams, LongRequestOptions):

class SDKObjectDownloadParams(ObjectDownloadParams, BaseRequestOptions):
pass


class SDKScorerCreateParams(ScorerCreateParams, LongRequestOptions):
pass


class SDKScorerListParams(ScorerListParams, BaseRequestOptions):
pass


class SDKScorerUpdateParams(ScorerUpdateParams, LongRequestOptions):
pass


class SDKScorerValidateParams(ScorerValidateParams, LongRequestOptions):
pass
Loading