Skip to content

Commit 39c93bd

Browse files
feat(api): api update
1 parent 4ed8b7a commit 39c93bd

10 files changed

Lines changed: 325 additions & 96 deletions

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 101
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-6b4c63a026f224ec02ccd715e063e07107b545bb859218afaac2b3df84cd227a.yml
3-
openapi_spec_hash: 76072cd766a9c45cff8890bb2bb8b1d5
4-
config_hash: a8ac5e38099129b07ae4decb0774719d
1+
configured_endpoints: 102
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-d709c5c5b17fec3a155d3367a00e123712be9fabdc802d7f2069b77b79883057.yml
3+
openapi_spec_hash: 7a92b2d1612b211cc7507bdc49adf657
4+
config_hash: 3b21dd730a91da5e18dd16ab3e1870a8

api.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,11 @@ Methods:
257257
Types:
258258

259259
```python
260-
from runloop_api_client.types.devboxes import ExecutionUpdateChunk
260+
from runloop_api_client.types.devboxes import (
261+
ExecutionUpdateChunk,
262+
ExecutionStreamStderrUpdatesResponse,
263+
ExecutionStreamStdoutUpdatesResponse,
264+
)
261265
```
262266

263267
Methods:
@@ -266,7 +270,8 @@ Methods:
266270
- <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>
267271
- <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>
268272
- <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>
269-
- <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
273+
- <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>) -> str</code>
274+
- <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>) -> str</code>
270275

271276
# Scenarios
272277

src/runloop_api_client/resources/devboxes/executions.py

Lines changed: 138 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@
2626
execution_retrieve_params,
2727
execution_execute_sync_params,
2828
execution_execute_async_params,
29-
execution_stream_updates_params,
29+
execution_stream_stderr_updates_params,
30+
execution_stream_stdout_updates_params,
3031
)
3132
from ...lib.polling_async import async_poll_until
3233
from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
33-
from ...types.devboxes.execution_update_chunk import ExecutionUpdateChunk
3434
from ...types.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
35+
from ...types.devboxes.execution_stream_stderr_updates_response import ExecutionStreamStderrUpdatesResponse
36+
from ...types.devboxes.execution_stream_stdout_updates_response import ExecutionStreamStdoutUpdatesResponse
3537

3638
__all__ = ["ExecutionsResource", "AsyncExecutionsResource"]
3739

@@ -326,7 +328,7 @@ def kill(
326328
cast_to=DevboxAsyncExecutionDetailView,
327329
)
328330

329-
def stream_updates(
331+
def stream_stderr_updates(
330332
self,
331333
execution_id: str,
332334
*,
@@ -338,9 +340,9 @@ def stream_updates(
338340
extra_query: Query | None = None,
339341
extra_body: Body | None = None,
340342
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
341-
) -> Stream[ExecutionUpdateChunk]:
343+
) -> Stream[ExecutionStreamStderrUpdatesResponse]:
342344
"""
343-
Tails the logs for the given execution with SSE streaming
345+
Tails the stderr logs for the given execution with SSE streaming
344346
345347
Args:
346348
offset: The byte offset to start the stream from
@@ -357,18 +359,69 @@ def stream_updates(
357359
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
358360
if not execution_id:
359361
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
362+
extra_headers = {"Accept": "text/plain", **(extra_headers or {})}
360363
return self._get(
361-
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/stream_updates",
364+
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stderr_updates",
362365
options=make_request_options(
363366
extra_headers=extra_headers,
364367
extra_query=extra_query,
365368
extra_body=extra_body,
366369
timeout=timeout,
367-
query=maybe_transform({"offset": offset}, execution_stream_updates_params.ExecutionStreamUpdatesParams),
370+
query=maybe_transform(
371+
{"offset": offset}, execution_stream_stderr_updates_params.ExecutionStreamStderrUpdatesParams
372+
),
368373
),
369-
cast_to=DevboxAsyncExecutionDetailView,
374+
cast_to=str,
370375
stream=True,
371-
stream_cls=Stream[ExecutionUpdateChunk],
376+
stream_cls=Stream[ExecutionStreamStderrUpdatesResponse],
377+
)
378+
379+
def stream_stdout_updates(
380+
self,
381+
execution_id: str,
382+
*,
383+
devbox_id: str,
384+
offset: str | NotGiven = NOT_GIVEN,
385+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
386+
# The extra values given here take precedence over values defined on the client or passed to this method.
387+
extra_headers: Headers | None = None,
388+
extra_query: Query | None = None,
389+
extra_body: Body | None = None,
390+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
391+
) -> Stream[ExecutionStreamStdoutUpdatesResponse]:
392+
"""
393+
Tails the stdout logs for the given execution with SSE streaming
394+
395+
Args:
396+
offset: The byte offset to start the stream from
397+
398+
extra_headers: Send extra headers
399+
400+
extra_query: Add additional query parameters to the request
401+
402+
extra_body: Add additional JSON properties to the request
403+
404+
timeout: Override the client-level default timeout for this request, in seconds
405+
"""
406+
if not devbox_id:
407+
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
408+
if not execution_id:
409+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
410+
extra_headers = {"Accept": "text/plain", **(extra_headers or {})}
411+
return self._get(
412+
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stdout_updates",
413+
options=make_request_options(
414+
extra_headers=extra_headers,
415+
extra_query=extra_query,
416+
extra_body=extra_body,
417+
timeout=timeout,
418+
query=maybe_transform(
419+
{"offset": offset}, execution_stream_stdout_updates_params.ExecutionStreamStdoutUpdatesParams
420+
),
421+
),
422+
cast_to=str,
423+
stream=True,
424+
stream_cls=Stream[ExecutionStreamStdoutUpdatesResponse],
372425
)
373426

374427

@@ -652,7 +705,7 @@ async def kill(
652705
cast_to=DevboxAsyncExecutionDetailView,
653706
)
654707

655-
async def stream_updates(
708+
async def stream_stderr_updates(
656709
self,
657710
execution_id: str,
658711
*,
@@ -664,9 +717,9 @@ async def stream_updates(
664717
extra_query: Query | None = None,
665718
extra_body: Body | None = None,
666719
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
667-
) -> AsyncStream[ExecutionUpdateChunk]:
720+
) -> AsyncStream[ExecutionStreamStderrUpdatesResponse]:
668721
"""
669-
Tails the logs for the given execution with SSE streaming
722+
Tails the stderr logs for the given execution with SSE streaming
670723
671724
Args:
672725
offset: The byte offset to start the stream from
@@ -683,20 +736,69 @@ async def stream_updates(
683736
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
684737
if not execution_id:
685738
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
739+
extra_headers = {"Accept": "text/plain", **(extra_headers or {})}
686740
return await self._get(
687-
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/stream_updates",
741+
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stderr_updates",
688742
options=make_request_options(
689743
extra_headers=extra_headers,
690744
extra_query=extra_query,
691745
extra_body=extra_body,
692746
timeout=timeout,
693747
query=await async_maybe_transform(
694-
{"offset": offset}, execution_stream_updates_params.ExecutionStreamUpdatesParams
748+
{"offset": offset}, execution_stream_stderr_updates_params.ExecutionStreamStderrUpdatesParams
695749
),
696750
),
697-
cast_to=DevboxAsyncExecutionDetailView,
751+
cast_to=str,
752+
stream=True,
753+
stream_cls=AsyncStream[ExecutionStreamStderrUpdatesResponse],
754+
)
755+
756+
async def stream_stdout_updates(
757+
self,
758+
execution_id: str,
759+
*,
760+
devbox_id: str,
761+
offset: str | NotGiven = NOT_GIVEN,
762+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
763+
# The extra values given here take precedence over values defined on the client or passed to this method.
764+
extra_headers: Headers | None = None,
765+
extra_query: Query | None = None,
766+
extra_body: Body | None = None,
767+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
768+
) -> AsyncStream[ExecutionStreamStdoutUpdatesResponse]:
769+
"""
770+
Tails the stdout logs for the given execution with SSE streaming
771+
772+
Args:
773+
offset: The byte offset to start the stream from
774+
775+
extra_headers: Send extra headers
776+
777+
extra_query: Add additional query parameters to the request
778+
779+
extra_body: Add additional JSON properties to the request
780+
781+
timeout: Override the client-level default timeout for this request, in seconds
782+
"""
783+
if not devbox_id:
784+
raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
785+
if not execution_id:
786+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
787+
extra_headers = {"Accept": "text/plain", **(extra_headers or {})}
788+
return await self._get(
789+
f"/v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stdout_updates",
790+
options=make_request_options(
791+
extra_headers=extra_headers,
792+
extra_query=extra_query,
793+
extra_body=extra_body,
794+
timeout=timeout,
795+
query=await async_maybe_transform(
796+
{"offset": offset}, execution_stream_stdout_updates_params.ExecutionStreamStdoutUpdatesParams
797+
),
798+
),
799+
cast_to=str,
698800
stream=True,
699-
stream_cls=AsyncStream[ExecutionUpdateChunk],
801+
stream_cls=AsyncStream[ExecutionStreamStdoutUpdatesResponse],
700802
)
701803

702804

@@ -716,8 +818,11 @@ def __init__(self, executions: ExecutionsResource) -> None:
716818
self.kill = to_raw_response_wrapper(
717819
executions.kill,
718820
)
719-
self.stream_updates = to_raw_response_wrapper(
720-
executions.stream_updates,
821+
self.stream_stderr_updates = to_raw_response_wrapper(
822+
executions.stream_stderr_updates,
823+
)
824+
self.stream_stdout_updates = to_raw_response_wrapper(
825+
executions.stream_stdout_updates,
721826
)
722827

723828

@@ -737,8 +842,11 @@ def __init__(self, executions: AsyncExecutionsResource) -> None:
737842
self.kill = async_to_raw_response_wrapper(
738843
executions.kill,
739844
)
740-
self.stream_updates = async_to_raw_response_wrapper(
741-
executions.stream_updates,
845+
self.stream_stderr_updates = async_to_raw_response_wrapper(
846+
executions.stream_stderr_updates,
847+
)
848+
self.stream_stdout_updates = async_to_raw_response_wrapper(
849+
executions.stream_stdout_updates,
742850
)
743851

744852

@@ -758,8 +866,11 @@ def __init__(self, executions: ExecutionsResource) -> None:
758866
self.kill = to_streamed_response_wrapper(
759867
executions.kill,
760868
)
761-
self.stream_updates = to_streamed_response_wrapper(
762-
executions.stream_updates,
869+
self.stream_stderr_updates = to_streamed_response_wrapper(
870+
executions.stream_stderr_updates,
871+
)
872+
self.stream_stdout_updates = to_streamed_response_wrapper(
873+
executions.stream_stdout_updates,
763874
)
764875

765876

@@ -779,6 +890,9 @@ def __init__(self, executions: AsyncExecutionsResource) -> None:
779890
self.kill = async_to_streamed_response_wrapper(
780891
executions.kill,
781892
)
782-
self.stream_updates = async_to_streamed_response_wrapper(
783-
executions.stream_updates,
893+
self.stream_stderr_updates = async_to_streamed_response_wrapper(
894+
executions.stream_stderr_updates,
895+
)
896+
self.stream_stdout_updates = async_to_streamed_response_wrapper(
897+
executions.stream_stdout_updates,
784898
)

src/runloop_api_client/types/devboxes/__init__.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
from .watched_file_response import WatchedFileResponse as WatchedFileResponse
5353
from .code_description_param import CodeDescriptionParam as CodeDescriptionParam
5454
from .computer_create_params import ComputerCreateParams as ComputerCreateParams
55-
from .execution_update_chunk import ExecutionUpdateChunk as ExecutionUpdateChunk
5655
from .file_contents_response import FileContentsResponse as FileContentsResponse
5756
from .health_status_response import HealthStatusResponse as HealthStatusResponse
5857
from .lsp_diagnostics_params import LspDiagnosticsParams as LspDiagnosticsParams
@@ -77,7 +76,6 @@
7776
from .code_action_application_result import CodeActionApplicationResult as CodeActionApplicationResult
7877
from .execution_execute_async_params import ExecutionExecuteAsyncParams as ExecutionExecuteAsyncParams
7978
from .lsp_set_watch_directory_params import LspSetWatchDirectoryParams as LspSetWatchDirectoryParams
80-
from .execution_stream_updates_params import ExecutionStreamUpdatesParams as ExecutionStreamUpdatesParams
8179
from .lsp_get_code_segment_info_params import LspGetCodeSegmentInfoParams as LspGetCodeSegmentInfoParams
8280
from .lsp_set_watch_directory_response import LspSetWatchDirectoryResponse as LspSetWatchDirectoryResponse
8381
from .computer_mouse_interaction_params import ComputerMouseInteractionParams as ComputerMouseInteractionParams
@@ -91,6 +89,18 @@
9189
from .computer_keyboard_interaction_response import (
9290
ComputerKeyboardInteractionResponse as ComputerKeyboardInteractionResponse,
9391
)
92+
from .execution_stream_stderr_updates_params import (
93+
ExecutionStreamStderrUpdatesParams as ExecutionStreamStderrUpdatesParams,
94+
)
95+
from .execution_stream_stdout_updates_params import (
96+
ExecutionStreamStdoutUpdatesParams as ExecutionStreamStdoutUpdatesParams,
97+
)
98+
from .execution_stream_stderr_updates_response import (
99+
ExecutionStreamStderrUpdatesResponse as ExecutionStreamStderrUpdatesResponse,
100+
)
101+
from .execution_stream_stdout_updates_response import (
102+
ExecutionStreamStdoutUpdatesResponse as ExecutionStreamStdoutUpdatesResponse,
103+
)
94104
from .lsp_get_code_actions_for_diagnostic_params import (
95105
LspGetCodeActionsForDiagnosticParams as LspGetCodeActionsForDiagnosticParams,
96106
)

src/runloop_api_client/types/devboxes/execution_stream_updates_params.py renamed to src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
from typing_extensions import Required, TypedDict
66

7-
__all__ = ["ExecutionStreamUpdatesParams"]
7+
__all__ = ["ExecutionStreamStderrUpdatesParams"]
88

99

10-
class ExecutionStreamUpdatesParams(TypedDict, total=False):
10+
class ExecutionStreamStderrUpdatesParams(TypedDict, total=False):
1111
devbox_id: Required[str]
1212

1313
offset: str
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing_extensions import TypeAlias
4+
5+
__all__ = ["ExecutionStreamStderrUpdatesResponse"]
6+
7+
ExecutionStreamStderrUpdatesResponse: TypeAlias = str
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import Required, TypedDict
6+
7+
__all__ = ["ExecutionStreamStdoutUpdatesParams"]
8+
9+
10+
class ExecutionStreamStdoutUpdatesParams(TypedDict, total=False):
11+
devbox_id: Required[str]
12+
13+
offset: str
14+
"""The byte offset to start the stream from"""
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing_extensions import TypeAlias
4+
5+
__all__ = ["ExecutionStreamStdoutUpdatesResponse"]
6+
7+
ExecutionStreamStdoutUpdatesResponse: TypeAlias = str

0 commit comments

Comments
 (0)