Skip to content

Commit f48cbee

Browse files
feat: Support telemetry enabled request config
1 parent c5f21ec commit f48cbee

10 files changed

Lines changed: 80 additions & 52 deletions

File tree

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 112
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-a0ad160eb0fb11e201e240de8487c12992a474076aeed1c1167ee54ade43edfb.yml
3-
openapi_spec_hash: 84a7075fddbe17b1446a759e8cc39047
4-
config_hash: 26beac3050665664d5d74d2bbfe9e808
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-e9c99662d29710f105847d461f8919e06f6aa2e43b0e1a6285d0b137643a7907.yml
3+
openapi_spec_hash: 4415cb4790c7a5ec892f4e3521217cb4
4+
config_hash: 27b38657d9a3b33328be930eeb319628

api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ from kernel.types.browsers import (
137137
BrowserTelemetryCategoryConfig,
138138
BrowserTelemetryConfig,
139139
BrowserTelemetryEvent,
140+
BrowserTelemetryRequestConfig,
140141
TelemetryStreamResponse,
141142
)
142143
```

src/kernel/resources/browsers/browsers.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
from ...types.shared_params.browser_profile import BrowserProfile
100100
from ...types.shared_params.browser_viewport import BrowserViewport
101101
from ...types.shared_params.browser_extension import BrowserExtension
102-
from ...types.browsers.browser_telemetry_config_param import BrowserTelemetryConfigParam
102+
from ...types.browsers.browser_telemetry_request_config_param import BrowserTelemetryRequestConfigParam
103103

104104
__all__ = ["BrowsersResource", "AsyncBrowsersResource"]
105105

@@ -173,7 +173,7 @@ def create(
173173
proxy_id: str | Omit = omit,
174174
start_url: str | Omit = omit,
175175
stealth: bool | Omit = omit,
176-
telemetry: Optional[BrowserTelemetryConfigParam] | Omit = omit,
176+
telemetry: Optional[BrowserTelemetryRequestConfigParam] | Omit = omit,
177177
timeout_seconds: int | Omit = omit,
178178
viewport: BrowserViewport | Omit = omit,
179179
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -219,9 +219,11 @@ def create(
219219
stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
220220
mechanisms.
221221
222-
telemetry: Telemetry configuration for the browser session. If provided, telemetry capture
223-
starts with the specified category filter when the session is created. If
224-
omitted, no telemetry capture is started.
222+
telemetry: Telemetry configuration for the browser session. Set enabled to true to start
223+
capture using VM defaults, or provide browser category settings. If omitted,
224+
null, set to an empty object ({}), set to enabled: false without browser
225+
category settings, or all four categories are explicitly disabled, capture is
226+
not started.
225227
226228
timeout_seconds: The number of seconds of inactivity before the browser session is terminated.
227229
Activity includes CDP connections and live view connections. Defaults to 60
@@ -325,7 +327,7 @@ def update(
325327
disable_default_proxy: bool | Omit = omit,
326328
profile: BrowserProfile | Omit = omit,
327329
proxy_id: Optional[str] | Omit = omit,
328-
telemetry: Optional[BrowserTelemetryConfigParam] | Omit = omit,
330+
telemetry: Optional[BrowserTelemetryRequestConfigParam] | Omit = omit,
329331
viewport: browser_update_params.Viewport | Omit = omit,
330332
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
331333
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -348,9 +350,10 @@ def update(
348350
proxy.
349351
350352
telemetry: Telemetry configuration. Omit, set to null, or set to an empty object ({}) to
351-
leave the existing configuration unchanged (no-op). To enable capture for all
352-
categories using VM defaults, set browser to an empty object ({"browser": {}}).
353-
To stop capture, set every category's enabled to false.
353+
leave the existing configuration unchanged. Set enabled to true to enable
354+
capture using VM defaults. Set enabled to false to stop capture. Provide browser
355+
category settings for per-category updates. Explicitly disabling all four
356+
categories also stops capture.
354357
355358
viewport: Viewport configuration to apply to the browser session.
356359
@@ -717,7 +720,7 @@ async def create(
717720
proxy_id: str | Omit = omit,
718721
start_url: str | Omit = omit,
719722
stealth: bool | Omit = omit,
720-
telemetry: Optional[BrowserTelemetryConfigParam] | Omit = omit,
723+
telemetry: Optional[BrowserTelemetryRequestConfigParam] | Omit = omit,
721724
timeout_seconds: int | Omit = omit,
722725
viewport: BrowserViewport | Omit = omit,
723726
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -763,9 +766,11 @@ async def create(
763766
stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
764767
mechanisms.
765768
766-
telemetry: Telemetry configuration for the browser session. If provided, telemetry capture
767-
starts with the specified category filter when the session is created. If
768-
omitted, no telemetry capture is started.
769+
telemetry: Telemetry configuration for the browser session. Set enabled to true to start
770+
capture using VM defaults, or provide browser category settings. If omitted,
771+
null, set to an empty object ({}), set to enabled: false without browser
772+
category settings, or all four categories are explicitly disabled, capture is
773+
not started.
769774
770775
timeout_seconds: The number of seconds of inactivity before the browser session is terminated.
771776
Activity includes CDP connections and live view connections. Defaults to 60
@@ -869,7 +874,7 @@ async def update(
869874
disable_default_proxy: bool | Omit = omit,
870875
profile: BrowserProfile | Omit = omit,
871876
proxy_id: Optional[str] | Omit = omit,
872-
telemetry: Optional[BrowserTelemetryConfigParam] | Omit = omit,
877+
telemetry: Optional[BrowserTelemetryRequestConfigParam] | Omit = omit,
873878
viewport: browser_update_params.Viewport | Omit = omit,
874879
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
875880
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -892,9 +897,10 @@ async def update(
892897
proxy.
893898
894899
telemetry: Telemetry configuration. Omit, set to null, or set to an empty object ({}) to
895-
leave the existing configuration unchanged (no-op). To enable capture for all
896-
categories using VM defaults, set browser to an empty object ({"browser": {}}).
897-
To stop capture, set every category's enabled to false.
900+
leave the existing configuration unchanged. Set enabled to true to enable
901+
capture using VM defaults. Set enabled to false to stop capture. Provide browser
902+
category settings for per-category updates. Explicitly disabling all four
903+
categories also stops capture.
898904
899905
viewport: Viewport configuration to apply to the browser session.
900906

src/kernel/types/browser_create_params.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from .shared_params.browser_profile import BrowserProfile
99
from .shared_params.browser_viewport import BrowserViewport
1010
from .shared_params.browser_extension import BrowserExtension
11-
from .browsers.browser_telemetry_config_param import BrowserTelemetryConfigParam
11+
from .browsers.browser_telemetry_request_config_param import BrowserTelemetryRequestConfigParam
1212

1313
__all__ = ["BrowserCreateParams"]
1414

@@ -75,11 +75,13 @@ class BrowserCreateParams(TypedDict, total=False):
7575
mechanisms.
7676
"""
7777

78-
telemetry: Optional[BrowserTelemetryConfigParam]
78+
telemetry: Optional[BrowserTelemetryRequestConfigParam]
7979
"""Telemetry configuration for the browser session.
8080
81-
If provided, telemetry capture starts with the specified category filter when
82-
the session is created. If omitted, no telemetry capture is started.
81+
Set enabled to true to start capture using VM defaults, or provide browser
82+
category settings. If omitted, null, set to an empty object ({}), set to
83+
enabled: false without browser category settings, or all four categories are
84+
explicitly disabled, capture is not started.
8385
"""
8486

8587
timeout_seconds: int

src/kernel/types/browser_update_params.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from .shared_params.browser_profile import BrowserProfile
99
from .shared_params.browser_viewport import BrowserViewport
10-
from .browsers.browser_telemetry_config_param import BrowserTelemetryConfigParam
10+
from .browsers.browser_telemetry_request_config_param import BrowserTelemetryRequestConfigParam
1111

1212
__all__ = ["BrowserUpdateParams", "Viewport"]
1313

@@ -31,13 +31,14 @@ class BrowserUpdateParams(TypedDict, total=False):
3131
Omit to leave unchanged, set to empty string to remove proxy.
3232
"""
3333

34-
telemetry: Optional[BrowserTelemetryConfigParam]
34+
telemetry: Optional[BrowserTelemetryRequestConfigParam]
3535
"""Telemetry configuration.
3636
3737
Omit, set to null, or set to an empty object ({}) to leave the existing
38-
configuration unchanged (no-op). To enable capture for all categories using VM
39-
defaults, set browser to an empty object ({"browser": {}}). To stop capture, set
40-
every category's enabled to false.
38+
configuration unchanged. Set enabled to true to enable capture using VM
39+
defaults. Set enabled to false to stop capture. Provide browser category
40+
settings for per-category updates. Explicitly disabling all four categories also
41+
stops capture.
4142
"""
4243

4344
viewport: Viewport

src/kernel/types/browsers/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
from .browser_page_tab_opened_event import BrowserPageTabOpenedEvent as BrowserPageTabOpenedEvent
5858
from .f_set_file_permissions_params import FSetFilePermissionsParams as FSetFilePermissionsParams
5959
from .browser_network_response_event import BrowserNetworkResponseEvent as BrowserNetworkResponseEvent
60-
from .browser_telemetry_config_param import BrowserTelemetryConfigParam as BrowserTelemetryConfigParam
6160
from .process_stdout_stream_response import ProcessStdoutStreamResponse as ProcessStdoutStreamResponse
6261
from .browser_interaction_click_event import BrowserInteractionClickEvent as BrowserInteractionClickEvent
6362
from .browser_page_layout_shift_event import BrowserPageLayoutShiftEvent as BrowserPageLayoutShiftEvent
@@ -83,6 +82,9 @@
8382
from .browser_monitor_reconnect_failed_event import (
8483
BrowserMonitorReconnectFailedEvent as BrowserMonitorReconnectFailedEvent,
8584
)
85+
from .browser_telemetry_request_config_param import (
86+
BrowserTelemetryRequestConfigParam as BrowserTelemetryRequestConfigParam,
87+
)
8688
from .browser_telemetry_category_config_param import (
8789
BrowserTelemetryCategoryConfigParam as BrowserTelemetryCategoryConfigParam,
8890
)

src/kernel/types/browsers/browser_telemetry_config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010

1111
class BrowserTelemetryConfig(BaseModel):
12-
"""Telemetry configuration for a browser session."""
12+
"""Active telemetry configuration for a browser session."""
1313

1414
browser: Optional[BrowserTelemetryCategoriesConfig] = None
15-
"""Per-category enable/disable flags. If omitted, all categories are captured."""
15+
"""Per-category enable/disable flags."""

src/kernel/types/browsers/browser_telemetry_config_param.py

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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 TypedDict
6+
7+
from .browser_telemetry_categories_config_param import BrowserTelemetryCategoriesConfigParam
8+
9+
__all__ = ["BrowserTelemetryRequestConfigParam"]
10+
11+
12+
class BrowserTelemetryRequestConfigParam(TypedDict, total=False):
13+
"""Telemetry request configuration for a browser session."""
14+
15+
browser: BrowserTelemetryCategoriesConfigParam
16+
"""Per-category enable/disable flags.
17+
18+
If enabled is true and browser is omitted or empty, the VM default category set
19+
is used. Explicitly disabling all four categories stops capture on update and
20+
starts no capture on create.
21+
"""
22+
23+
enabled: bool
24+
"""Request shortcut for browser telemetry capture.
25+
26+
True enables capture using VM defaults. False stops capture on update and starts
27+
no capture on create. Cannot be combined with browser category settings.
28+
"""

tests/api_resources/test_browsers.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ def test_method_create_with_all_params(self, client: Kernel) -> None:
5959
"interaction": {"enabled": True},
6060
"network": {"enabled": True},
6161
"page": {"enabled": True},
62-
}
62+
},
63+
"enabled": True,
6364
},
6465
timeout_seconds=10,
6566
viewport={
@@ -169,7 +170,8 @@ def test_method_update_with_all_params(self, client: Kernel) -> None:
169170
"interaction": {"enabled": True},
170171
"network": {"enabled": True},
171172
"page": {"enabled": True},
172-
}
173+
},
174+
"enabled": True,
173175
},
174176
viewport={
175177
"height": 800,
@@ -463,7 +465,8 @@ async def test_method_create_with_all_params(self, async_client: AsyncKernel) ->
463465
"interaction": {"enabled": True},
464466
"network": {"enabled": True},
465467
"page": {"enabled": True},
466-
}
468+
},
469+
"enabled": True,
467470
},
468471
timeout_seconds=10,
469472
viewport={
@@ -573,7 +576,8 @@ async def test_method_update_with_all_params(self, async_client: AsyncKernel) ->
573576
"interaction": {"enabled": True},
574577
"network": {"enabled": True},
575578
"page": {"enabled": True},
576-
}
579+
},
580+
"enabled": True,
577581
},
578582
viewport={
579583
"height": 800,

0 commit comments

Comments
 (0)