Skip to content

Commit a9c5b56

Browse files
release: 0.64.0 (#651)
* feat(api): api update * feat(api): api update * feat(api): api update * release: 0.64.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent a9a0d2b commit a9c5b56

12 files changed

Lines changed: 503 additions & 49 deletions

File tree

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.63.0"
2+
".": "0.64.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 92
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-6b65a42b74406a77acb03ddb582288396d7af64df16eebf887c77246d3a54470.yml
3-
openapi_spec_hash: aeb9f595d53412926ef507174f33a1a1
4-
config_hash: f008c82c6ae5099c9a4b8e1fce1e15f1
1+
configured_endpoints: 94
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-d1cc15eb5ef9125c6eef2855fc9ccc1129f68116e20ac0a72a9c77a445909033.yml
3+
openapi_spec_hash: 925f218d18ed7f1faff9389b318a674f
4+
config_hash: 82af97d4d6dde958eed9f5e4ae55f75a

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Changelog
22

3+
## 0.64.0 (2025-10-06)
4+
5+
Full Changelog: [v0.63.0...v0.64.0](https://github.com/runloopai/api-client-python/compare/v0.63.0...v0.64.0)
6+
7+
### Features
8+
9+
* **api:** api update ([b13e49f](https://github.com/runloopai/api-client-python/commit/b13e49f006c45d3e10c0383825fbe2054b31b351))
10+
* **api:** api update ([736c122](https://github.com/runloopai/api-client-python/commit/736c122c5a350ba081eb495786e94ad6b999b121))
11+
* **api:** api update ([c4dbcf3](https://github.com/runloopai/api-client-python/commit/c4dbcf33822da8045def9617948e7b30f617fe51))
12+
313
## 0.63.0 (2025-10-02)
414

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

api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ Methods:
198198
- <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>
199199
- <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>
200200
- <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>
201+
- <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>
201202
- <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>
202203
- <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>
203204

@@ -312,6 +313,7 @@ Methods:
312313
- <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>
313314
- <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>
314315
- <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>
316+
- <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>
315317

316318
# Secrets
317319

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "runloop_api_client"
3-
version = "0.63.0"
3+
version = "0.64.0"
44
description = "The official Python library for the runloop API"
55
dynamic = ["readme"]
66
license = "MIT"

src/runloop_api_client/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "runloop_api_client"
4-
__version__ = "0.63.0" # x-release-please-version
4+
__version__ = "0.64.0" # x-release-please-version

src/runloop_api_client/resources/devboxes/executions.py

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import typing_extensions
66
from typing import Optional, cast
7+
from typing_extensions import Literal
78

89
import httpx
910

@@ -25,6 +26,7 @@
2526
from ...types.devboxes import (
2627
execution_kill_params,
2728
execution_retrieve_params,
29+
execution_send_std_in_params,
2830
execution_execute_sync_params,
2931
execution_execute_async_params,
3032
execution_stream_stderr_updates_params,
@@ -332,6 +334,62 @@ def kill(
332334
cast_to=DevboxAsyncExecutionDetailView,
333335
)
334336

337+
def send_std_in(
338+
self,
339+
execution_id: str,
340+
*,
341+
devbox_id: str,
342+
signal: Optional[Literal["EOF", "INTERRUPT"]] | Omit = omit,
343+
text: Optional[str] | Omit = omit,
344+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
345+
# The extra values given here take precedence over values defined on the client or passed to this method.
346+
extra_headers: Headers | None = None,
347+
extra_query: Query | None = None,
348+
extra_body: Body | None = None,
349+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
350+
idempotency_key: str | None = None,
351+
) -> DevboxAsyncExecutionDetailView:
352+
"""
353+
Send content to the Std In of a running execution.
354+
355+
Args:
356+
signal: Signal to send to std in of the running execution.
357+
358+
text: Text to send to std in of the running execution.
359+
360+
extra_headers: Send extra headers
361+
362+
extra_query: Add additional query parameters to the request
363+
364+
extra_body: Add additional JSON properties to the request
365+
366+
timeout: Override the client-level default timeout for this request, in seconds
367+
368+
idempotency_key: Specify a custom idempotency key for this request
369+
"""
370+
if not devbox_id:
371+
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
372+
if not execution_id:
373+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
374+
return self._post(
375+
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in",
376+
body=maybe_transform(
377+
{
378+
"signal": signal,
379+
"text": text,
380+
},
381+
execution_send_std_in_params.ExecutionSendStdInParams,
382+
),
383+
options=make_request_options(
384+
extra_headers=extra_headers,
385+
extra_query=extra_query,
386+
extra_body=extra_body,
387+
timeout=timeout,
388+
idempotency_key=idempotency_key,
389+
),
390+
cast_to=DevboxAsyncExecutionDetailView,
391+
)
392+
335393
def stream_stderr_updates(
336394
self,
337395
execution_id: str,
@@ -785,6 +843,62 @@ async def kill(
785843
cast_to=DevboxAsyncExecutionDetailView,
786844
)
787845

846+
async def send_std_in(
847+
self,
848+
execution_id: str,
849+
*,
850+
devbox_id: str,
851+
signal: Optional[Literal["EOF", "INTERRUPT"]] | Omit = omit,
852+
text: Optional[str] | Omit = omit,
853+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
854+
# The extra values given here take precedence over values defined on the client or passed to this method.
855+
extra_headers: Headers | None = None,
856+
extra_query: Query | None = None,
857+
extra_body: Body | None = None,
858+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
859+
idempotency_key: str | None = None,
860+
) -> DevboxAsyncExecutionDetailView:
861+
"""
862+
Send content to the Std In of a running execution.
863+
864+
Args:
865+
signal: Signal to send to std in of the running execution.
866+
867+
text: Text to send to std in of the running execution.
868+
869+
extra_headers: Send extra headers
870+
871+
extra_query: Add additional query parameters to the request
872+
873+
extra_body: Add additional JSON properties to the request
874+
875+
timeout: Override the client-level default timeout for this request, in seconds
876+
877+
idempotency_key: Specify a custom idempotency key for this request
878+
"""
879+
if not devbox_id:
880+
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
881+
if not execution_id:
882+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
883+
return await self._post(
884+
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in",
885+
body=await async_maybe_transform(
886+
{
887+
"signal": signal,
888+
"text": text,
889+
},
890+
execution_send_std_in_params.ExecutionSendStdInParams,
891+
),
892+
options=make_request_options(
893+
extra_headers=extra_headers,
894+
extra_query=extra_query,
895+
extra_body=extra_body,
896+
timeout=timeout,
897+
idempotency_key=idempotency_key,
898+
),
899+
cast_to=DevboxAsyncExecutionDetailView,
900+
)
901+
788902
async def stream_stderr_updates(
789903
self,
790904
execution_id: str,
@@ -973,6 +1087,9 @@ def __init__(self, executions: ExecutionsResource) -> None:
9731087
self.kill = to_raw_response_wrapper(
9741088
executions.kill,
9751089
)
1090+
self.send_std_in = to_raw_response_wrapper(
1091+
executions.send_std_in,
1092+
)
9761093
self.stream_stdout_updates = to_raw_response_wrapper(
9771094
executions.stream_stdout_updates,
9781095
)
@@ -999,6 +1116,9 @@ def __init__(self, executions: AsyncExecutionsResource) -> None:
9991116
self.kill = async_to_raw_response_wrapper(
10001117
executions.kill,
10011118
)
1119+
self.send_std_in = async_to_raw_response_wrapper(
1120+
executions.send_std_in,
1121+
)
10021122
self.stream_stdout_updates = async_to_raw_response_wrapper(
10031123
executions.stream_stdout_updates,
10041124
)
@@ -1025,6 +1145,9 @@ def __init__(self, executions: ExecutionsResource) -> None:
10251145
self.kill = to_streamed_response_wrapper(
10261146
executions.kill,
10271147
)
1148+
self.send_std_in = to_streamed_response_wrapper(
1149+
executions.send_std_in,
1150+
)
10281151
self.stream_stdout_updates = to_streamed_response_wrapper(
10291152
executions.stream_stdout_updates,
10301153
)
@@ -1051,6 +1174,9 @@ def __init__(self, executions: AsyncExecutionsResource) -> None:
10511174
self.kill = async_to_streamed_response_wrapper(
10521175
executions.kill,
10531176
)
1177+
self.send_std_in = async_to_streamed_response_wrapper(
1178+
executions.send_std_in,
1179+
)
10541180
self.stream_stdout_updates = async_to_streamed_response_wrapper(
10551181
executions.stream_stdout_updates,
10561182
)

0 commit comments

Comments
 (0)