Skip to content

release: 0.9.0 #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 8, 2025
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.8.3"
".": "0.9.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: 19
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-9f2d347a4bcb03aed092ba4495aac090c3d988e9a99af091ee35c09994adad8b.yml
openapi_spec_hash: 73b92bd5503ab6c64dc26da31cca36e2
config_hash: 65328ff206b8c0168c915914506d9dba
configured_endpoints: 31
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-e907afeabfeea49dedd783112ac3fd29267bc86f3d594f89ba9a2abf2bcbc9d8.yml
openapi_spec_hash: 060ca6288c1a09b6d1bdf207a0011165
config_hash: f67e4b33b2fb30c1405ee2fff8096320
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 0.9.0 (2025-08-08)

Full Changelog: [v0.8.3...v0.9.0](https://github.com/onkernel/kernel-python-sdk/compare/v0.8.3...v0.9.0)

### Features

* **api:** browser instance file i/o ([14667cd](https://github.com/onkernel/kernel-python-sdk/commit/14667cdfd06540585ffac570b8963b322cf9ef23))


### Chores

* **internal:** fix ruff target version ([07b55e4](https://github.com/onkernel/kernel-python-sdk/commit/07b55e4a4b65b403b3b6f69b95b221e2020cf30b))

## 0.8.3 (2025-08-01)

Full Changelog: [v0.8.2...v0.8.3](https://github.com/onkernel/kernel-python-sdk/compare/v0.8.2...v0.8.3)
Expand Down
34 changes: 34 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,37 @@ Methods:
- <code title="get /browsers/{id}/replays/{replay_id}">client.browsers.replays.<a href="./src/kernel/resources/browsers/replays.py">download</a>(replay_id, \*, id) -> BinaryAPIResponse</code>
- <code title="post /browsers/{id}/replays">client.browsers.replays.<a href="./src/kernel/resources/browsers/replays.py">start</a>(id, \*\*<a href="src/kernel/types/browsers/replay_start_params.py">params</a>) -> <a href="./src/kernel/types/browsers/replay_start_response.py">ReplayStartResponse</a></code>
- <code title="post /browsers/{id}/replays/{replay_id}/stop">client.browsers.replays.<a href="./src/kernel/resources/browsers/replays.py">stop</a>(replay_id, \*, id) -> None</code>

## Fs

Types:

```python
from kernel.types.browsers import FFileInfoResponse, FListFilesResponse
```

Methods:

- <code title="put /browsers/{id}/fs/create_directory">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">create_directory</a>(id, \*\*<a href="src/kernel/types/browsers/f_create_directory_params.py">params</a>) -> None</code>
- <code title="put /browsers/{id}/fs/delete_directory">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">delete_directory</a>(id, \*\*<a href="src/kernel/types/browsers/f_delete_directory_params.py">params</a>) -> None</code>
- <code title="put /browsers/{id}/fs/delete_file">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">delete_file</a>(id, \*\*<a href="src/kernel/types/browsers/f_delete_file_params.py">params</a>) -> None</code>
- <code title="get /browsers/{id}/fs/file_info">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">file_info</a>(id, \*\*<a href="src/kernel/types/browsers/f_file_info_params.py">params</a>) -> <a href="./src/kernel/types/browsers/f_file_info_response.py">FFileInfoResponse</a></code>
- <code title="get /browsers/{id}/fs/list_files">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">list_files</a>(id, \*\*<a href="src/kernel/types/browsers/f_list_files_params.py">params</a>) -> <a href="./src/kernel/types/browsers/f_list_files_response.py">FListFilesResponse</a></code>
- <code title="put /browsers/{id}/fs/move">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">move</a>(id, \*\*<a href="src/kernel/types/browsers/f_move_params.py">params</a>) -> None</code>
- <code title="get /browsers/{id}/fs/read_file">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">read_file</a>(id, \*\*<a href="src/kernel/types/browsers/f_read_file_params.py">params</a>) -> BinaryAPIResponse</code>
- <code title="put /browsers/{id}/fs/set_file_permissions">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">set_file_permissions</a>(id, \*\*<a href="src/kernel/types/browsers/f_set_file_permissions_params.py">params</a>) -> None</code>
- <code title="put /browsers/{id}/fs/write_file">client.browsers.fs.<a href="./src/kernel/resources/browsers/fs/fs.py">write_file</a>(id, contents, \*\*<a href="src/kernel/types/browsers/f_write_file_params.py">params</a>) -> None</code>

### Watch

Types:

```python
from kernel.types.browsers.fs import WatchEventsResponse, WatchStartResponse
```

Methods:

- <code title="get /browsers/{id}/fs/watch/{watch_id}/events">client.browsers.fs.watch.<a href="./src/kernel/resources/browsers/fs/watch.py">events</a>(watch_id, \*, id) -> <a href="./src/kernel/types/browsers/fs/watch_events_response.py">WatchEventsResponse</a></code>
- <code title="post /browsers/{id}/fs/watch">client.browsers.fs.watch.<a href="./src/kernel/resources/browsers/fs/watch.py">start</a>(id, \*\*<a href="src/kernel/types/browsers/fs/watch_start_params.py">params</a>) -> <a href="./src/kernel/types/browsers/fs/watch_start_response.py">WatchStartResponse</a></code>
- <code title="delete /browsers/{id}/fs/watch/{watch_id}">client.browsers.fs.watch.<a href="./src/kernel/resources/browsers/fs/watch.py">stop</a>(watch_id, \*, id) -> None</code>
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kernel"
version = "0.8.3"
version = "0.9.0"
description = "The official Python library for the kernel API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down Expand Up @@ -159,7 +159,7 @@ reportPrivateUsage = false
[tool.ruff]
line-length = 120
output-format = "grouped"
target-version = "py37"
target-version = "py38"

[tool.ruff.format]
docstring-code-format = true
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/_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__ = "kernel"
__version__ = "0.8.3" # x-release-please-version
__version__ = "0.9.0" # x-release-please-version
14 changes: 14 additions & 0 deletions src/kernel/resources/browsers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .fs import (
FsResource,
AsyncFsResource,
FsResourceWithRawResponse,
AsyncFsResourceWithRawResponse,
FsResourceWithStreamingResponse,
AsyncFsResourceWithStreamingResponse,
)
from .replays import (
ReplaysResource,
AsyncReplaysResource,
Expand All @@ -24,6 +32,12 @@
"AsyncReplaysResourceWithRawResponse",
"ReplaysResourceWithStreamingResponse",
"AsyncReplaysResourceWithStreamingResponse",
"FsResource",
"AsyncFsResource",
"FsResourceWithRawResponse",
"AsyncFsResourceWithRawResponse",
"FsResourceWithStreamingResponse",
"AsyncFsResourceWithStreamingResponse",
"BrowsersResource",
"AsyncBrowsersResource",
"BrowsersResourceWithRawResponse",
Expand Down
32 changes: 32 additions & 0 deletions src/kernel/resources/browsers/browsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@

import httpx

from .fs.fs import (
FsResource,
AsyncFsResource,
FsResourceWithRawResponse,
AsyncFsResourceWithRawResponse,
FsResourceWithStreamingResponse,
AsyncFsResourceWithStreamingResponse,
)
from ...types import browser_create_params, browser_delete_params
from .replays import (
ReplaysResource,
Expand Down Expand Up @@ -37,6 +45,10 @@ class BrowsersResource(SyncAPIResource):
def replays(self) -> ReplaysResource:
return ReplaysResource(self._client)

@cached_property
def fs(self) -> FsResource:
return FsResource(self._client)

@cached_property
def with_raw_response(self) -> BrowsersResourceWithRawResponse:
"""
Expand Down Expand Up @@ -239,6 +251,10 @@ class AsyncBrowsersResource(AsyncAPIResource):
def replays(self) -> AsyncReplaysResource:
return AsyncReplaysResource(self._client)

@cached_property
def fs(self) -> AsyncFsResource:
return AsyncFsResource(self._client)

@cached_property
def with_raw_response(self) -> AsyncBrowsersResourceWithRawResponse:
"""
Expand Down Expand Up @@ -462,6 +478,10 @@ def __init__(self, browsers: BrowsersResource) -> None:
def replays(self) -> ReplaysResourceWithRawResponse:
return ReplaysResourceWithRawResponse(self._browsers.replays)

@cached_property
def fs(self) -> FsResourceWithRawResponse:
return FsResourceWithRawResponse(self._browsers.fs)


class AsyncBrowsersResourceWithRawResponse:
def __init__(self, browsers: AsyncBrowsersResource) -> None:
Expand All @@ -487,6 +507,10 @@ def __init__(self, browsers: AsyncBrowsersResource) -> None:
def replays(self) -> AsyncReplaysResourceWithRawResponse:
return AsyncReplaysResourceWithRawResponse(self._browsers.replays)

@cached_property
def fs(self) -> AsyncFsResourceWithRawResponse:
return AsyncFsResourceWithRawResponse(self._browsers.fs)


class BrowsersResourceWithStreamingResponse:
def __init__(self, browsers: BrowsersResource) -> None:
Expand All @@ -512,6 +536,10 @@ def __init__(self, browsers: BrowsersResource) -> None:
def replays(self) -> ReplaysResourceWithStreamingResponse:
return ReplaysResourceWithStreamingResponse(self._browsers.replays)

@cached_property
def fs(self) -> FsResourceWithStreamingResponse:
return FsResourceWithStreamingResponse(self._browsers.fs)


class AsyncBrowsersResourceWithStreamingResponse:
def __init__(self, browsers: AsyncBrowsersResource) -> None:
Expand All @@ -536,3 +564,7 @@ def __init__(self, browsers: AsyncBrowsersResource) -> None:
@cached_property
def replays(self) -> AsyncReplaysResourceWithStreamingResponse:
return AsyncReplaysResourceWithStreamingResponse(self._browsers.replays)

@cached_property
def fs(self) -> AsyncFsResourceWithStreamingResponse:
return AsyncFsResourceWithStreamingResponse(self._browsers.fs)
33 changes: 33 additions & 0 deletions src/kernel/resources/browsers/fs/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .fs import (
FsResource,
AsyncFsResource,
FsResourceWithRawResponse,
AsyncFsResourceWithRawResponse,
FsResourceWithStreamingResponse,
AsyncFsResourceWithStreamingResponse,
)
from .watch import (
WatchResource,
AsyncWatchResource,
WatchResourceWithRawResponse,
AsyncWatchResourceWithRawResponse,
WatchResourceWithStreamingResponse,
AsyncWatchResourceWithStreamingResponse,
)

__all__ = [
"WatchResource",
"AsyncWatchResource",
"WatchResourceWithRawResponse",
"AsyncWatchResourceWithRawResponse",
"WatchResourceWithStreamingResponse",
"AsyncWatchResourceWithStreamingResponse",
"FsResource",
"AsyncFsResource",
"FsResourceWithRawResponse",
"AsyncFsResourceWithRawResponse",
"FsResourceWithStreamingResponse",
"AsyncFsResourceWithStreamingResponse",
]
Loading