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.63.0"
".": "0.64.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: 92
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-6b65a42b74406a77acb03ddb582288396d7af64df16eebf887c77246d3a54470.yml
openapi_spec_hash: aeb9f595d53412926ef507174f33a1a1
config_hash: f008c82c6ae5099c9a4b8e1fce1e15f1
configured_endpoints: 94
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-d1cc15eb5ef9125c6eef2855fc9ccc1129f68116e20ac0a72a9c77a445909033.yml
openapi_spec_hash: 925f218d18ed7f1faff9389b318a674f
config_hash: 82af97d4d6dde958eed9f5e4ae55f75a
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 0.64.0 (2025-10-06)

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

### Features

* **api:** api update ([b13e49f](https://github.com/runloopai/api-client-python/commit/b13e49f006c45d3e10c0383825fbe2054b31b351))
* **api:** api update ([736c122](https://github.com/runloopai/api-client-python/commit/736c122c5a350ba081eb495786e94ad6b999b121))
* **api:** api update ([c4dbcf3](https://github.com/runloopai/api-client-python/commit/c4dbcf33822da8045def9617948e7b30f617fe51))

## 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)
Expand Down
2 changes: 2 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ Methods:
- <code title="post /v1/devboxes/{id}/execute_async">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
- <code title="post /v1/devboxes/{devbox_id}/executions/{execution_id}/kill">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">kill</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_kill_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
- <code title="post /v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">send_std_in</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_send_std_in_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
- <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stderr_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_stderr_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/execution_update_chunk.py">ExecutionUpdateChunk</a></code>
- <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stdout_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_stdout_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/execution_update_chunk.py">ExecutionUpdateChunk</a></code>

Expand Down Expand Up @@ -312,6 +313,7 @@ Methods:
- <code title="post /v1/repositories/{id}/inspect">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">inspect</a>(id, \*\*<a href="src/runloop_api_client/types/repository_inspect_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_inspection_details.py">RepositoryInspectionDetails</a></code>
- <code title="get /v1/repositories/{id}/inspections">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">list_inspections</a>(id) -> <a href="./src/runloop_api_client/types/repository_inspection_list_view.py">RepositoryInspectionListView</a></code>
- <code title="post /v1/repositories/{id}/refresh">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">refresh</a>(id, \*\*<a href="src/runloop_api_client/types/repository_refresh_params.py">params</a>) -> object</code>
- <code title="get /v1/repositories/inspections/{id}">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">retrieve_inspection</a>(id) -> <a href="./src/runloop_api_client/types/repository_inspection_details.py">RepositoryInspectionDetails</a></code>

# Secrets

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.63.0"
version = "0.64.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.63.0" # x-release-please-version
__version__ = "0.64.0" # x-release-please-version
126 changes: 126 additions & 0 deletions src/runloop_api_client/resources/devboxes/executions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import typing_extensions
from typing import Optional, cast
from typing_extensions import Literal

import httpx

Expand All @@ -25,6 +26,7 @@
from ...types.devboxes import (
execution_kill_params,
execution_retrieve_params,
execution_send_std_in_params,
execution_execute_sync_params,
execution_execute_async_params,
execution_stream_stderr_updates_params,
Expand Down Expand Up @@ -332,6 +334,62 @@ def kill(
cast_to=DevboxAsyncExecutionDetailView,
)

def send_std_in(
self,
execution_id: str,
*,
devbox_id: str,
signal: Optional[Literal["EOF", "INTERRUPT"]] | Omit = omit,
text: 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.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> DevboxAsyncExecutionDetailView:
"""
Send content to the Std In of a running execution.

Args:
signal: Signal to send to std in of the running execution.

text: Text to send to std in of the running execution.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds

idempotency_key: Specify a custom idempotency key for this request
"""
if not devbox_id:
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
if not execution_id:
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
return self._post(
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in",
body=maybe_transform(
{
"signal": signal,
"text": text,
},
execution_send_std_in_params.ExecutionSendStdInParams,
),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
),
cast_to=DevboxAsyncExecutionDetailView,
)

def stream_stderr_updates(
self,
execution_id: str,
Expand Down Expand Up @@ -785,6 +843,62 @@ async def kill(
cast_to=DevboxAsyncExecutionDetailView,
)

async def send_std_in(
self,
execution_id: str,
*,
devbox_id: str,
signal: Optional[Literal["EOF", "INTERRUPT"]] | Omit = omit,
text: 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.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> DevboxAsyncExecutionDetailView:
"""
Send content to the Std In of a running execution.

Args:
signal: Signal to send to std in of the running execution.

text: Text to send to std in of the running execution.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds

idempotency_key: Specify a custom idempotency key for this request
"""
if not devbox_id:
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
if not execution_id:
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
return await self._post(
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in",
body=await async_maybe_transform(
{
"signal": signal,
"text": text,
},
execution_send_std_in_params.ExecutionSendStdInParams,
),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
),
cast_to=DevboxAsyncExecutionDetailView,
)

async def stream_stderr_updates(
self,
execution_id: str,
Expand Down Expand Up @@ -973,6 +1087,9 @@ def __init__(self, executions: ExecutionsResource) -> None:
self.kill = to_raw_response_wrapper(
executions.kill,
)
self.send_std_in = to_raw_response_wrapper(
executions.send_std_in,
)
self.stream_stdout_updates = to_raw_response_wrapper(
executions.stream_stdout_updates,
)
Expand All @@ -999,6 +1116,9 @@ def __init__(self, executions: AsyncExecutionsResource) -> None:
self.kill = async_to_raw_response_wrapper(
executions.kill,
)
self.send_std_in = async_to_raw_response_wrapper(
executions.send_std_in,
)
self.stream_stdout_updates = async_to_raw_response_wrapper(
executions.stream_stdout_updates,
)
Expand All @@ -1025,6 +1145,9 @@ def __init__(self, executions: ExecutionsResource) -> None:
self.kill = to_streamed_response_wrapper(
executions.kill,
)
self.send_std_in = to_streamed_response_wrapper(
executions.send_std_in,
)
self.stream_stdout_updates = to_streamed_response_wrapper(
executions.stream_stdout_updates,
)
Expand All @@ -1051,6 +1174,9 @@ def __init__(self, executions: AsyncExecutionsResource) -> None:
self.kill = async_to_streamed_response_wrapper(
executions.kill,
)
self.send_std_in = async_to_streamed_response_wrapper(
executions.send_std_in,
)
self.stream_stdout_updates = async_to_streamed_response_wrapper(
executions.stream_stdout_updates,
)
Expand Down
Loading