Skip to content

Commit a19ca06

Browse files
authored
Merge pull request #159 from kernel/release-please--branches--main--changes--next
release: 0.94.0
2 parents ec72bcd + 8fe728b commit a19ca06

62 files changed

Lines changed: 4068 additions & 127 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.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.93.0"
2+
".": "0.94.0"
33
}

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
configured_endpoints: 140
1+
configured_endpoints: 145

CHANGELOG.md

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

3+
## [0.94.0](https://github.com/kernel/kernel-python-sdk/compare/v0.93.0...v0.94.0) (2026-08-24)
4+
5+
6+
### Features
7+
8+
* Mirror the control/platform telemetry split into the public API ([27c5a0a](https://github.com/kernel/kernel-python-sdk/commit/27c5a0a75ade568f1feb7e058070771ae1f6db60))
9+
* site configs: report proxy-restricted analyses ([7afcfc4](https://github.com/kernel/kernel-python-sdk/commit/7afcfc499d7008407c872d75bcc4d8a1604f7954))
10+
311
## [0.93.0](https://github.com/kernel/kernel-python-sdk/compare/v0.92.0...v0.93.0) (2026-08-19)
412

513

api.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,37 @@ Methods:
7474
- <code title="get /invocations/{id}/events">client.invocations.<a href="./src/kernel/resources/invocations.py">follow</a>(id, \*\*<a href="src/kernel/types/invocation_follow_params.py">params</a>) -> <a href="./src/kernel/types/invocation_follow_response.py">InvocationFollowResponse</a></code>
7575
- <code title="get /invocations/{id}/browsers">client.invocations.<a href="./src/kernel/resources/invocations.py">list_browsers</a>(id) -> <a href="./src/kernel/types/invocation_list_browsers_response.py">InvocationListBrowsersResponse</a></code>
7676

77+
# SiteConfigs
78+
79+
Types:
80+
81+
```python
82+
from kernel.types import (
83+
Analysis,
84+
AnalysisSummary,
85+
Browser,
86+
Evidence,
87+
LookupRequest,
88+
LookupResponse,
89+
NoRecommendation,
90+
Proxy,
91+
Recommendation,
92+
RecommendationResult,
93+
RecommendationSummary,
94+
ResolveRequest,
95+
SiteConfigResponse,
96+
Target,
97+
)
98+
```
99+
100+
Methods:
101+
102+
- <code title="get /site-configs/{id}">client.site_configs.<a href="./src/kernel/resources/site_configs.py">retrieve</a>(id) -> <a href="./src/kernel/types/site_config_response.py">SiteConfigResponse</a></code>
103+
- <code title="get /site-configs">client.site_configs.<a href="./src/kernel/resources/site_configs.py">list</a>(\*\*<a href="src/kernel/types/site_config_list_params.py">params</a>) -> <a href="./src/kernel/types/analysis_summary.py">SyncOffsetPagination[AnalysisSummary]</a></code>
104+
- <code title="get /site-configs/recommendations">client.site_configs.<a href="./src/kernel/resources/site_configs.py">list_recommendations</a>(\*\*<a href="src/kernel/types/site_config_list_recommendations_params.py">params</a>) -> <a href="./src/kernel/types/recommendation_summary.py">SyncOffsetPagination[RecommendationSummary]</a></code>
105+
- <code title="post /site-configs/lookup">client.site_configs.<a href="./src/kernel/resources/site_configs.py">lookup</a>(\*\*<a href="src/kernel/types/site_config_lookup_params.py">params</a>) -> <a href="./src/kernel/types/lookup_response.py">LookupResponse</a></code>
106+
- <code title="post /site-configs/resolve">client.site_configs.<a href="./src/kernel/resources/site_configs.py">resolve</a>(\*\*<a href="src/kernel/types/site_config_resolve_params.py">params</a>) -> <a href="./src/kernel/types/site_config_response.py">SiteConfigResponse</a></code>
107+
77108
# Browsers
78109

79110
Types:
@@ -117,6 +148,8 @@ from kernel.types.browsers import (
117148
BrowserAPICallEvent,
118149
BrowserCallStack,
119150
BrowserCaptchaSolveResultEvent,
151+
BrowserCdpCommandEvent,
152+
BrowserCdpCommandMethod,
120153
BrowserCdpConnectEvent,
121154
BrowserCdpDisconnectEvent,
122155
BrowserConsoleErrorEvent,
@@ -138,6 +171,7 @@ from kernel.types.browsers import (
138171
BrowserNetworkLoadingFailedEvent,
139172
BrowserNetworkRequestEvent,
140173
BrowserNetworkResponseEvent,
174+
BrowserPageCrashedEvent,
141175
BrowserPageDomContentLoadedEvent,
142176
BrowserPageLayoutSettledEvent,
143177
BrowserPageLayoutShiftEvent,
@@ -146,12 +180,15 @@ from kernel.types.browsers import (
146180
BrowserPageNavigationEvent,
147181
BrowserPageNavigationSettledEvent,
148182
BrowserPageTabOpenedEvent,
183+
BrowserPlatformAPICallEvent,
149184
BrowserProxyErrorEvent,
150185
BrowserServiceCrashedEvent,
151186
BrowserSystemOomKillEvent,
152187
BrowserTelemetryCategoriesConfig,
153188
BrowserTelemetryCategoryConfig,
189+
BrowserTelemetryCdpControlConfig,
154190
BrowserTelemetryConfig,
191+
BrowserTelemetryControlConfig,
155192
BrowserTelemetryEvent,
156193
BrowserTelemetryExportConfig,
157194
BrowserTelemetryOtlpExportConfig,

pyproject.toml

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

src/kernel/_client.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
deployments,
6363
invocations,
6464
organization,
65+
site_configs,
6566
browser_pools,
6667
credential_providers,
6768
)
@@ -74,6 +75,7 @@
7475
from .resources.credentials import CredentialsResource, AsyncCredentialsResource
7576
from .resources.deployments import DeploymentsResource, AsyncDeploymentsResource
7677
from .resources.invocations import InvocationsResource, AsyncInvocationsResource
78+
from .resources.site_configs import SiteConfigsResource, AsyncSiteConfigsResource
7779
from .resources.browser_pools import BrowserPoolsResource, AsyncBrowserPoolsResource
7880
from .resources.browsers.browsers import BrowsersResource, AsyncBrowsersResource
7981
from .resources.projects.projects import ProjectsResource, AsyncProjectsResource
@@ -223,6 +225,13 @@ def invocations(self) -> InvocationsResource:
223225

224226
return InvocationsResource(self)
225227

228+
@cached_property
229+
def site_configs(self) -> SiteConfigsResource:
230+
"""Resolve browser and proxy recommendations for bot-protected sites."""
231+
from .resources.site_configs import SiteConfigsResource
232+
233+
return SiteConfigsResource(self)
234+
226235
@cached_property
227236
def browsers(self) -> BrowsersResource:
228237
"""Create and manage browser sessions."""
@@ -599,6 +608,13 @@ def invocations(self) -> AsyncInvocationsResource:
599608

600609
return AsyncInvocationsResource(self)
601610

611+
@cached_property
612+
def site_configs(self) -> AsyncSiteConfigsResource:
613+
"""Resolve browser and proxy recommendations for bot-protected sites."""
614+
from .resources.site_configs import AsyncSiteConfigsResource
615+
616+
return AsyncSiteConfigsResource(self)
617+
602618
@cached_property
603619
def browsers(self) -> AsyncBrowsersResource:
604620
"""Create and manage browser sessions."""
@@ -879,6 +895,13 @@ def invocations(self) -> invocations.InvocationsResourceWithRawResponse:
879895

880896
return InvocationsResourceWithRawResponse(self._client.invocations)
881897

898+
@cached_property
899+
def site_configs(self) -> site_configs.SiteConfigsResourceWithRawResponse:
900+
"""Resolve browser and proxy recommendations for bot-protected sites."""
901+
from .resources.site_configs import SiteConfigsResourceWithRawResponse
902+
903+
return SiteConfigsResourceWithRawResponse(self._client.site_configs)
904+
882905
@cached_property
883906
def browsers(self) -> browsers.BrowsersResourceWithRawResponse:
884907
"""Create and manage browser sessions."""
@@ -999,6 +1022,13 @@ def invocations(self) -> invocations.AsyncInvocationsResourceWithRawResponse:
9991022

10001023
return AsyncInvocationsResourceWithRawResponse(self._client.invocations)
10011024

1025+
@cached_property
1026+
def site_configs(self) -> site_configs.AsyncSiteConfigsResourceWithRawResponse:
1027+
"""Resolve browser and proxy recommendations for bot-protected sites."""
1028+
from .resources.site_configs import AsyncSiteConfigsResourceWithRawResponse
1029+
1030+
return AsyncSiteConfigsResourceWithRawResponse(self._client.site_configs)
1031+
10021032
@cached_property
10031033
def browsers(self) -> browsers.AsyncBrowsersResourceWithRawResponse:
10041034
"""Create and manage browser sessions."""
@@ -1119,6 +1149,13 @@ def invocations(self) -> invocations.InvocationsResourceWithStreamingResponse:
11191149

11201150
return InvocationsResourceWithStreamingResponse(self._client.invocations)
11211151

1152+
@cached_property
1153+
def site_configs(self) -> site_configs.SiteConfigsResourceWithStreamingResponse:
1154+
"""Resolve browser and proxy recommendations for bot-protected sites."""
1155+
from .resources.site_configs import SiteConfigsResourceWithStreamingResponse
1156+
1157+
return SiteConfigsResourceWithStreamingResponse(self._client.site_configs)
1158+
11221159
@cached_property
11231160
def browsers(self) -> browsers.BrowsersResourceWithStreamingResponse:
11241161
"""Create and manage browser sessions."""
@@ -1239,6 +1276,13 @@ def invocations(self) -> invocations.AsyncInvocationsResourceWithStreamingRespon
12391276

12401277
return AsyncInvocationsResourceWithStreamingResponse(self._client.invocations)
12411278

1279+
@cached_property
1280+
def site_configs(self) -> site_configs.AsyncSiteConfigsResourceWithStreamingResponse:
1281+
"""Resolve browser and proxy recommendations for bot-protected sites."""
1282+
from .resources.site_configs import AsyncSiteConfigsResourceWithStreamingResponse
1283+
1284+
return AsyncSiteConfigsResourceWithStreamingResponse(self._client.site_configs)
1285+
12421286
@cached_property
12431287
def browsers(self) -> browsers.AsyncBrowsersResourceWithStreamingResponse:
12441288
"""Create and manage browser sessions."""

src/kernel/_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__ = "kernel"
4-
__version__ = "0.93.0" # x-release-please-version
4+
__version__ = "0.94.0" # x-release-please-version

src/kernel/resources/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@
112112
OrganizationResourceWithStreamingResponse,
113113
AsyncOrganizationResourceWithStreamingResponse,
114114
)
115+
from .site_configs import (
116+
SiteConfigsResource,
117+
AsyncSiteConfigsResource,
118+
SiteConfigsResourceWithRawResponse,
119+
AsyncSiteConfigsResourceWithRawResponse,
120+
SiteConfigsResourceWithStreamingResponse,
121+
AsyncSiteConfigsResourceWithStreamingResponse,
122+
)
115123
from .browser_pools import (
116124
BrowserPoolsResource,
117125
AsyncBrowserPoolsResource,
@@ -148,6 +156,12 @@
148156
"AsyncInvocationsResourceWithRawResponse",
149157
"InvocationsResourceWithStreamingResponse",
150158
"AsyncInvocationsResourceWithStreamingResponse",
159+
"SiteConfigsResource",
160+
"AsyncSiteConfigsResource",
161+
"SiteConfigsResourceWithRawResponse",
162+
"AsyncSiteConfigsResourceWithRawResponse",
163+
"SiteConfigsResourceWithStreamingResponse",
164+
"AsyncSiteConfigsResourceWithStreamingResponse",
151165
"BrowsersResource",
152166
"AsyncBrowsersResource",
153167
"BrowsersResourceWithRawResponse",

src/kernel/resources/browsers/browsers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def create(
208208
extensions: List of browser extensions to load into the session. Provide each by id or name.
209209
210210
gpu: If true, enables GPU acceleration for the browser session. Requires Start-Up or
211-
Enterprise plan and headless=false.
211+
Enterprise plan, headless=false, and region=us-east.
212212
213213
headless: If true, launches the browser using a headless image (no VNC/GUI). Defaults to
214214
false.
@@ -828,7 +828,7 @@ async def create(
828828
extensions: List of browser extensions to load into the session. Provide each by id or name.
829829
830830
gpu: If true, enables GPU acceleration for the browser session. Requires Start-Up or
831-
Enterprise plan and headless=false.
831+
Enterprise plan, headless=false, and region=us-east.
832832
833833
headless: If true, launches the browser using a headless image (no VNC/GUI). Defaults to
834834
false.

src/kernel/resources/browsers/telemetry.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ def events(
6262
"page",
6363
"interaction",
6464
"control",
65+
"platform",
6566
"connection",
6667
"system",
6768
"screenshot",
@@ -238,6 +239,7 @@ def events(
238239
"page",
239240
"interaction",
240241
"control",
242+
"platform",
241243
"connection",
242244
"system",
243245
"screenshot",

0 commit comments

Comments
 (0)