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.21.0"
".": "0.22.0"
}
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 73
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-76f469266d2a329a84074f63a1e53c27bb78eb39c0585fe7790b082e1758c0c5.yml
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-a6925284ea7678ed801dbaf6b5c60676b97ab7a16191c1b2ff8ef6a468e89f3b.yml
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.22.0 (2025-02-04)

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

### Features

* **api:** api update ([#531](https://github.com/runloopai/api-client-python/issues/531)) ([2952d8d](https://github.com/runloopai/api-client-python/commit/2952d8d3b2653fd02f1bf99ac3cb6e76739a282a))

## 0.21.0 (2025-02-04)

Full Changelog: [v0.20.0...v0.21.0](https://github.com/runloopai/api-client-python/compare/v0.20.0...v0.21.0)
Expand Down
2 changes: 1 addition & 1 deletion api.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ from runloop_api_client.types.devboxes import BrowserView

Methods:

- <code title="post /v1/devboxes/browsers">client.devboxes.browsers.<a href="./src/runloop_api_client/resources/devboxes/browsers.py">create</a>() -> <a href="./src/runloop_api_client/types/devboxes/browser_view.py">BrowserView</a></code>
- <code title="post /v1/devboxes/browsers">client.devboxes.browsers.<a href="./src/runloop_api_client/resources/devboxes/browsers.py">create</a>(\*\*<a href="src/runloop_api_client/types/devboxes/browser_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/browser_view.py">BrowserView</a></code>

## Computers

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.21.0"
version = "0.22.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.21.0" # x-release-please-version
__version__ = "0.22.0" # x-release-please-version
37 changes: 37 additions & 0 deletions src/runloop_api_client/resources/devboxes/browsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@

from __future__ import annotations

from typing import Optional

import httpx

from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from ..._utils import (
maybe_transform,
async_maybe_transform,
)
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import (
Expand All @@ -14,6 +20,7 @@
async_to_streamed_response_wrapper,
)
from ..._base_client import make_request_options
from ...types.devboxes import browser_create_params
from ...types.devboxes.browser_view import BrowserView

__all__ = ["BrowsersResource", "AsyncBrowsersResource"]
Expand Down Expand Up @@ -42,6 +49,7 @@ def with_streaming_response(self) -> BrowsersResourceWithStreamingResponse:
def create(
self,
*,
name: Optional[str] | NotGiven = NOT_GIVEN,
# 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,
Expand All @@ -55,9 +63,23 @@ def create(
As part
of booting the Devbox, the browser will automatically be started with connection
utilities activated.

Args:
name: The name to use for the created Devbox with a Browser.

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
"""
return self._post(
"/v1/devboxes/browsers",
body=maybe_transform({"name": name}, browser_create_params.BrowserCreateParams),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down Expand Up @@ -92,6 +114,7 @@ def with_streaming_response(self) -> AsyncBrowsersResourceWithStreamingResponse:
async def create(
self,
*,
name: Optional[str] | NotGiven = NOT_GIVEN,
# 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,
Expand All @@ -105,9 +128,23 @@ async def create(
As part
of booting the Devbox, the browser will automatically be started with connection
utilities activated.

Args:
name: The name to use for the created Devbox with a Browser.

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
"""
return await self._post(
"/v1/devboxes/browsers",
body=await async_maybe_transform({"name": name}, browser_create_params.BrowserCreateParams),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
Expand Down
18 changes: 16 additions & 2 deletions src/runloop_api_client/resources/devboxes/computers.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ def create(
self,
*,
display_dimensions: Optional[computer_create_params.DisplayDimensions] | NotGiven = NOT_GIVEN,
name: Optional[str] | NotGiven = NOT_GIVEN,
# 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,
Expand All @@ -78,6 +79,8 @@ def create(
Args:
display_dimensions: Customize the dimensions of the computer display.

name: The name to use for the created computer.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -91,7 +94,11 @@ def create(
return self._post(
"/v1/devboxes/computers",
body=maybe_transform(
{"display_dimensions": display_dimensions}, computer_create_params.ComputerCreateParams
{
"display_dimensions": display_dimensions,
"name": name,
},
computer_create_params.ComputerCreateParams,
),
options=make_request_options(
extra_headers=extra_headers,
Expand Down Expand Up @@ -285,6 +292,7 @@ async def create(
self,
*,
display_dimensions: Optional[computer_create_params.DisplayDimensions] | NotGiven = NOT_GIVEN,
name: Optional[str] | NotGiven = NOT_GIVEN,
# 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,
Expand All @@ -304,6 +312,8 @@ async def create(
Args:
display_dimensions: Customize the dimensions of the computer display.

name: The name to use for the created computer.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -317,7 +327,11 @@ async def create(
return await self._post(
"/v1/devboxes/computers",
body=await async_maybe_transform(
{"display_dimensions": display_dimensions}, computer_create_params.ComputerCreateParams
{
"display_dimensions": display_dimensions,
"name": name,
},
computer_create_params.ComputerCreateParams,
),
options=make_request_options(
extra_headers=extra_headers,
Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/types/devbox_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class DevboxView(BaseModel):
id: str
"""The ID of the Devbox."""

capabilities: List[Literal["unknown", "computer_usage", "browser_usage"]]
capabilities: List[Literal["unknown", "computer_usage", "browser_usage", "language_server"]]
"""A list of capability groups this devbox has access to.

This allows devboxes to be compatible with certain tools sets like computer
Expand Down
1 change: 1 addition & 0 deletions src/runloop_api_client/types/devboxes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
from .references_response import ReferencesResponse as ReferencesResponse
from .diagnostics_response import DiagnosticsResponse as DiagnosticsResponse
from .base_diagnostic_param import BaseDiagnosticParam as BaseDiagnosticParam
from .browser_create_params import BrowserCreateParams as BrowserCreateParams
from .code_actions_response import CodeActionsResponse as CodeActionsResponse
from .devbox_logs_list_view import DevboxLogsListView as DevboxLogsListView
from .lsp_formatting_params import LspFormattingParams as LspFormattingParams
Expand Down
13 changes: 13 additions & 0 deletions src/runloop_api_client/types/devboxes/browser_create_params.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 Optional
from typing_extensions import TypedDict

__all__ = ["BrowserCreateParams"]


class BrowserCreateParams(TypedDict, total=False):
name: Optional[str]
"""The name to use for the created Devbox with a Browser."""
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ class ComputerCreateParams(TypedDict, total=False):
display_dimensions: Optional[DisplayDimensions]
"""Customize the dimensions of the computer display."""

name: Optional[str]
"""The name to use for the created computer."""


class DisplayDimensions(TypedDict, total=False):
display_height_px: Required[int]
Expand Down
14 changes: 14 additions & 0 deletions tests/api_resources/devboxes/test_browsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ def test_method_create(self, client: Runloop) -> None:
browser = client.devboxes.browsers.create()
assert_matches_type(BrowserView, browser, path=["response"])

@parametrize
def test_method_create_with_all_params(self, client: Runloop) -> None:
browser = client.devboxes.browsers.create(
name="name",
)
assert_matches_type(BrowserView, browser, path=["response"])

@parametrize
def test_raw_response_create(self, client: Runloop) -> None:
response = client.devboxes.browsers.with_raw_response.create()
Expand Down Expand Up @@ -51,6 +58,13 @@ async def test_method_create(self, async_client: AsyncRunloop) -> None:
browser = await async_client.devboxes.browsers.create()
assert_matches_type(BrowserView, browser, path=["response"])

@parametrize
async def test_method_create_with_all_params(self, async_client: AsyncRunloop) -> None:
browser = await async_client.devboxes.browsers.create(
name="name",
)
assert_matches_type(BrowserView, browser, path=["response"])

@parametrize
async def test_raw_response_create(self, async_client: AsyncRunloop) -> None:
response = await async_client.devboxes.browsers.with_raw_response.create()
Expand Down
2 changes: 2 additions & 0 deletions tests/api_resources/devboxes/test_computers.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None:
"display_height_px": 0,
"display_width_px": 0,
},
name="name",
)
assert_matches_type(ComputerView, computer, path=["response"])

Expand Down Expand Up @@ -220,6 +221,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) -
"display_height_px": 0,
"display_width_px": 0,
},
name="name",
)
assert_matches_type(ComputerView, computer, path=["response"])

Expand Down
Loading