@onkernel/sdk 0.55.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/api-promise.d.mts +1 -0
  3. package/api-promise.d.mts.map +1 -1
  4. package/api-promise.d.ts +1 -0
  5. package/api-promise.d.ts.map +1 -1
  6. package/api-promise.mjs +1 -0
  7. package/api-promise.mjs.map +1 -1
  8. package/client.d.mts +8 -2
  9. package/client.d.mts.map +1 -1
  10. package/client.d.ts +8 -2
  11. package/client.d.ts.map +1 -1
  12. package/client.js +6 -0
  13. package/client.js.map +1 -1
  14. package/client.mjs +6 -0
  15. package/client.mjs.map +1 -1
  16. package/core/api-promise.d.mts.map +1 -1
  17. package/core/api-promise.d.ts.map +1 -1
  18. package/core/api-promise.mjs.map +1 -1
  19. package/core/error.mjs.map +1 -1
  20. package/core/pagination.d.mts.map +1 -1
  21. package/core/pagination.d.ts.map +1 -1
  22. package/core/pagination.mjs.map +1 -1
  23. package/core/resource.d.mts.map +1 -1
  24. package/core/resource.d.ts.map +1 -1
  25. package/core/streaming.d.mts.map +1 -1
  26. package/core/streaming.d.ts.map +1 -1
  27. package/core/streaming.mjs.map +1 -1
  28. package/core/uploads.d.mts.map +1 -1
  29. package/core/uploads.d.ts.map +1 -1
  30. package/core/uploads.mjs.map +1 -1
  31. package/error.d.mts +1 -0
  32. package/error.d.mts.map +1 -1
  33. package/error.d.ts +1 -0
  34. package/error.d.ts.map +1 -1
  35. package/error.mjs +1 -0
  36. package/error.mjs.map +1 -1
  37. package/index.d.mts.map +1 -1
  38. package/index.d.ts.map +1 -1
  39. package/index.mjs.map +1 -1
  40. package/internal/decoders/line.mjs.map +1 -1
  41. package/internal/detect-platform.mjs.map +1 -1
  42. package/internal/headers.mjs.map +1 -1
  43. package/internal/parse.d.mts.map +1 -1
  44. package/internal/parse.d.ts.map +1 -1
  45. package/internal/parse.mjs.map +1 -1
  46. package/internal/request-options.d.mts.map +1 -1
  47. package/internal/request-options.d.ts.map +1 -1
  48. package/internal/shims.d.mts +6 -0
  49. package/internal/shims.d.mts.map +1 -1
  50. package/internal/shims.d.ts +6 -0
  51. package/internal/shims.d.ts.map +1 -1
  52. package/internal/to-file.d.mts.map +1 -1
  53. package/internal/to-file.d.ts.map +1 -1
  54. package/internal/to-file.mjs.map +1 -1
  55. package/internal/types.d.mts +4 -4
  56. package/internal/types.d.mts.map +1 -1
  57. package/internal/types.d.ts +4 -4
  58. package/internal/types.d.ts.map +1 -1
  59. package/internal/uploads.d.mts.map +1 -1
  60. package/internal/uploads.d.ts.map +1 -1
  61. package/internal/uploads.mjs.map +1 -1
  62. package/internal/utils/base64.mjs.map +1 -1
  63. package/internal/utils/log.d.mts.map +1 -1
  64. package/internal/utils/log.d.ts.map +1 -1
  65. package/internal/utils/log.mjs.map +1 -1
  66. package/internal/utils/path.mjs.map +1 -1
  67. package/internal/utils/query.mjs.map +1 -1
  68. package/internal/utils/values.mjs.map +1 -1
  69. package/internal/utils.d.mts.map +1 -1
  70. package/internal/utils.d.ts.map +1 -1
  71. package/internal/utils.mjs.map +1 -1
  72. package/lib/browser-fetch.d.mts.map +1 -1
  73. package/lib/browser-fetch.d.ts.map +1 -1
  74. package/lib/browser-fetch.mjs.map +1 -1
  75. package/lib/browser-routing.d.mts.map +1 -1
  76. package/lib/browser-routing.d.ts.map +1 -1
  77. package/lib/browser-routing.mjs.map +1 -1
  78. package/package.json +1 -1
  79. package/pagination.d.mts +1 -0
  80. package/pagination.d.mts.map +1 -1
  81. package/pagination.d.ts +1 -0
  82. package/pagination.d.ts.map +1 -1
  83. package/pagination.mjs +1 -0
  84. package/pagination.mjs.map +1 -1
  85. package/resource.d.mts +1 -0
  86. package/resource.d.mts.map +1 -1
  87. package/resource.d.ts +1 -0
  88. package/resource.d.ts.map +1 -1
  89. package/resource.mjs +1 -0
  90. package/resource.mjs.map +1 -1
  91. package/resources/api-keys.d.mts +146 -0
  92. package/resources/api-keys.d.mts.map +1 -0
  93. package/resources/api-keys.d.ts +146 -0
  94. package/resources/api-keys.d.ts.map +1 -0
  95. package/resources/api-keys.js +81 -0
  96. package/resources/api-keys.js.map +1 -0
  97. package/resources/api-keys.mjs +77 -0
  98. package/resources/api-keys.mjs.map +1 -0
  99. package/resources/apps.d.mts.map +1 -1
  100. package/resources/apps.d.ts.map +1 -1
  101. package/resources/apps.mjs.map +1 -1
  102. package/resources/auth/auth.d.mts.map +1 -1
  103. package/resources/auth/auth.d.ts.map +1 -1
  104. package/resources/auth/auth.mjs.map +1 -1
  105. package/resources/auth/connections.d.mts +35 -5
  106. package/resources/auth/connections.d.mts.map +1 -1
  107. package/resources/auth/connections.d.ts +35 -5
  108. package/resources/auth/connections.d.ts.map +1 -1
  109. package/resources/auth/connections.mjs.map +1 -1
  110. package/resources/auth/index.d.mts.map +1 -1
  111. package/resources/auth/index.d.ts.map +1 -1
  112. package/resources/auth/index.mjs.map +1 -1
  113. package/resources/auth.d.mts.map +1 -1
  114. package/resources/auth.d.ts.map +1 -1
  115. package/resources/auth.mjs.map +1 -1
  116. package/resources/browser-pools.d.mts +33 -15
  117. package/resources/browser-pools.d.mts.map +1 -1
  118. package/resources/browser-pools.d.ts +33 -15
  119. package/resources/browser-pools.d.ts.map +1 -1
  120. package/resources/browser-pools.js.map +1 -1
  121. package/resources/browser-pools.mjs.map +1 -1
  122. package/resources/browsers/browsers.d.mts +144 -53
  123. package/resources/browsers/browsers.d.mts.map +1 -1
  124. package/resources/browsers/browsers.d.ts +144 -53
  125. package/resources/browsers/browsers.d.ts.map +1 -1
  126. package/resources/browsers/browsers.js +4 -14
  127. package/resources/browsers/browsers.js.map +1 -1
  128. package/resources/browsers/browsers.mjs +4 -14
  129. package/resources/browsers/browsers.mjs.map +1 -1
  130. package/resources/browsers/computer.d.mts.map +1 -1
  131. package/resources/browsers/computer.d.ts.map +1 -1
  132. package/resources/browsers/computer.mjs.map +1 -1
  133. package/resources/browsers/fs/fs.d.mts.map +1 -1
  134. package/resources/browsers/fs/fs.d.ts.map +1 -1
  135. package/resources/browsers/fs/fs.mjs.map +1 -1
  136. package/resources/browsers/fs/index.d.mts.map +1 -1
  137. package/resources/browsers/fs/index.d.ts.map +1 -1
  138. package/resources/browsers/fs/index.mjs.map +1 -1
  139. package/resources/browsers/fs/watch.d.mts.map +1 -1
  140. package/resources/browsers/fs/watch.d.ts.map +1 -1
  141. package/resources/browsers/fs/watch.mjs.map +1 -1
  142. package/resources/browsers/fs.d.mts.map +1 -1
  143. package/resources/browsers/fs.d.ts.map +1 -1
  144. package/resources/browsers/fs.mjs.map +1 -1
  145. package/resources/browsers/index.d.mts +2 -1
  146. package/resources/browsers/index.d.mts.map +1 -1
  147. package/resources/browsers/index.d.ts +2 -1
  148. package/resources/browsers/index.d.ts.map +1 -1
  149. package/resources/browsers/index.js +3 -1
  150. package/resources/browsers/index.js.map +1 -1
  151. package/resources/browsers/index.mjs +1 -0
  152. package/resources/browsers/index.mjs.map +1 -1
  153. package/resources/browsers/logs.d.mts.map +1 -1
  154. package/resources/browsers/logs.d.ts.map +1 -1
  155. package/resources/browsers/logs.mjs.map +1 -1
  156. package/resources/browsers/playwright.d.mts.map +1 -1
  157. package/resources/browsers/playwright.d.ts.map +1 -1
  158. package/resources/browsers/playwright.mjs.map +1 -1
  159. package/resources/browsers/process.d.mts.map +1 -1
  160. package/resources/browsers/process.d.ts.map +1 -1
  161. package/resources/browsers/process.mjs.map +1 -1
  162. package/resources/browsers/replays.d.mts.map +1 -1
  163. package/resources/browsers/replays.d.ts.map +1 -1
  164. package/resources/browsers/replays.mjs.map +1 -1
  165. package/resources/browsers/telemetry.d.mts +1230 -0
  166. package/resources/browsers/telemetry.d.mts.map +1 -0
  167. package/resources/browsers/telemetry.d.ts +1230 -0
  168. package/resources/browsers/telemetry.d.ts.map +1 -0
  169. package/resources/browsers/telemetry.js +45 -0
  170. package/resources/browsers/telemetry.js.map +1 -0
  171. package/resources/browsers/telemetry.mjs +41 -0
  172. package/resources/browsers/telemetry.mjs.map +1 -0
  173. package/resources/browsers.d.mts.map +1 -1
  174. package/resources/browsers.d.ts.map +1 -1
  175. package/resources/browsers.mjs.map +1 -1
  176. package/resources/credential-providers.d.mts.map +1 -1
  177. package/resources/credential-providers.d.ts.map +1 -1
  178. package/resources/credential-providers.mjs.map +1 -1
  179. package/resources/credentials.d.mts.map +1 -1
  180. package/resources/credentials.d.ts.map +1 -1
  181. package/resources/credentials.mjs.map +1 -1
  182. package/resources/deployments.d.mts.map +1 -1
  183. package/resources/deployments.d.ts.map +1 -1
  184. package/resources/deployments.mjs.map +1 -1
  185. package/resources/extensions.d.mts.map +1 -1
  186. package/resources/extensions.d.ts.map +1 -1
  187. package/resources/extensions.mjs.map +1 -1
  188. package/resources/index.d.mts +2 -1
  189. package/resources/index.d.mts.map +1 -1
  190. package/resources/index.d.ts +2 -1
  191. package/resources/index.d.ts.map +1 -1
  192. package/resources/index.js +3 -1
  193. package/resources/index.js.map +1 -1
  194. package/resources/index.mjs +1 -0
  195. package/resources/index.mjs.map +1 -1
  196. package/resources/invocations.d.mts +18 -6
  197. package/resources/invocations.d.mts.map +1 -1
  198. package/resources/invocations.d.ts +18 -6
  199. package/resources/invocations.d.ts.map +1 -1
  200. package/resources/invocations.js.map +1 -1
  201. package/resources/invocations.mjs.map +1 -1
  202. package/resources/profiles.d.mts.map +1 -1
  203. package/resources/profiles.d.ts.map +1 -1
  204. package/resources/profiles.mjs.map +1 -1
  205. package/resources/projects/index.d.mts.map +1 -1
  206. package/resources/projects/index.d.ts.map +1 -1
  207. package/resources/projects/index.mjs.map +1 -1
  208. package/resources/projects/limits.d.mts +0 -15
  209. package/resources/projects/limits.d.mts.map +1 -1
  210. package/resources/projects/limits.d.ts +0 -15
  211. package/resources/projects/limits.d.ts.map +1 -1
  212. package/resources/projects/limits.js +2 -2
  213. package/resources/projects/limits.js.map +1 -1
  214. package/resources/projects/limits.mjs +2 -2
  215. package/resources/projects/limits.mjs.map +1 -1
  216. package/resources/projects/projects.d.mts +1 -2
  217. package/resources/projects/projects.d.mts.map +1 -1
  218. package/resources/projects/projects.d.ts +1 -2
  219. package/resources/projects/projects.d.ts.map +1 -1
  220. package/resources/projects/projects.js +6 -7
  221. package/resources/projects/projects.js.map +1 -1
  222. package/resources/projects/projects.mjs +6 -7
  223. package/resources/projects/projects.mjs.map +1 -1
  224. package/resources/projects.d.mts.map +1 -1
  225. package/resources/projects.d.ts.map +1 -1
  226. package/resources/projects.mjs.map +1 -1
  227. package/resources/proxies.d.mts +3 -1
  228. package/resources/proxies.d.mts.map +1 -1
  229. package/resources/proxies.d.ts +3 -1
  230. package/resources/proxies.d.ts.map +1 -1
  231. package/resources/proxies.mjs.map +1 -1
  232. package/resources.d.mts.map +1 -1
  233. package/resources.d.ts.map +1 -1
  234. package/resources.mjs.map +1 -1
  235. package/src/client.ts +24 -4
  236. package/src/resources/api-keys.ts +195 -0
  237. package/src/resources/auth/connections.ts +49 -5
  238. package/src/resources/browser-pools.ts +33 -16
  239. package/src/resources/browsers/browsers.ts +218 -69
  240. package/src/resources/browsers/index.ts +35 -2
  241. package/src/resources/browsers/telemetry.ts +1521 -0
  242. package/src/resources/index.ts +9 -2
  243. package/src/resources/invocations.ts +18 -7
  244. package/src/resources/projects/limits.ts +2 -20
  245. package/src/resources/projects/projects.ts +6 -7
  246. package/src/resources/proxies.ts +3 -1
  247. package/src/version.ts +1 -1
  248. package/streaming.d.mts +1 -0
  249. package/streaming.d.mts.map +1 -1
  250. package/streaming.d.ts +1 -0
  251. package/streaming.d.ts.map +1 -1
  252. package/streaming.mjs +1 -0
  253. package/streaming.mjs.map +1 -1
  254. package/uploads.d.mts +1 -0
  255. package/uploads.d.mts.map +1 -1
  256. package/uploads.d.ts +1 -0
  257. package/uploads.d.ts.map +1 -1
  258. package/uploads.mjs +1 -0
  259. package/uploads.mjs.map +1 -1
  260. package/version.d.mts +1 -1
  261. package/version.d.ts +1 -1
  262. package/version.js +1 -1
  263. package/version.mjs +1 -1
@@ -0,0 +1,1521 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as TelemetryAPI from './telemetry';
5
+ import { APIPromise } from '../../core/api-promise';
6
+ import { Stream } from '../../core/streaming';
7
+ import { buildHeaders } from '../../internal/headers';
8
+ import { RequestOptions } from '../../internal/request-options';
9
+ import { path } from '../../internal/utils/path';
10
+
11
+ /**
12
+ * Stream live telemetry events from a browser session.
13
+ */
14
+ export class Telemetry extends APIResource {
15
+ /**
16
+ * Streams browser telemetry events as a server-sent events (SSE) stream. The
17
+ * stream closes when the browser session terminates. Each event frame includes an
18
+ * id: field containing a monotonically increasing sequence number; pass it as
19
+ * Last-Event-ID on reconnect to resume without gaps. The event: field is never
20
+ * set; all frames carry JSON in the data: field. A keepalive comment frame is sent
21
+ * every 15 seconds when no events arrive. Returns 404 if the browser session does
22
+ * not exist. If telemetry was not enabled on the session, the stream opens but no
23
+ * events are delivered.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const response = await client.browsers.telemetry.stream(
28
+ * 'id',
29
+ * );
30
+ * ```
31
+ */
32
+ stream(
33
+ id: string,
34
+ params: TelemetryStreamParams | undefined = {},
35
+ options?: RequestOptions,
36
+ ): APIPromise<Stream<TelemetryStreamResponse>> {
37
+ const { 'Last-Event-ID': lastEventID } = params ?? {};
38
+ return this._client.get(path`/browsers/${id}/telemetry`, {
39
+ ...options,
40
+ headers: buildHeaders([
41
+ {
42
+ Accept: 'text/event-stream',
43
+ ...(lastEventID != null ? { 'Last-Event-ID': lastEventID } : undefined),
44
+ },
45
+ options?.headers,
46
+ ]),
47
+ stream: true,
48
+ }) as APIPromise<Stream<TelemetryStreamResponse>>;
49
+ }
50
+ }
51
+
52
+ /**
53
+ * CDP Runtime.StackTrace representing the JavaScript call stack at the time of an
54
+ * event. Fields use CDP naming conventions rather than snake_case to match the
55
+ * Chrome DevTools Protocol wire format.
56
+ */
57
+ export interface BrowserCallStack {
58
+ /**
59
+ * Ordered list of call frames, outermost first.
60
+ */
61
+ callFrames: Array<BrowserCallStack.CallFrame>;
62
+
63
+ /**
64
+ * Optional label for the stack trace (e.g. async cause).
65
+ */
66
+ description?: string;
67
+
68
+ /**
69
+ * Parent stack trace for async stacks.
70
+ */
71
+ parent?: BrowserCallStack;
72
+ }
73
+
74
+ export namespace BrowserCallStack {
75
+ export interface CallFrame {
76
+ /**
77
+ * Zero-based column number within the line.
78
+ */
79
+ columnNumber: number;
80
+
81
+ /**
82
+ * JavaScript function name, or empty string for anonymous functions.
83
+ */
84
+ functionName: string;
85
+
86
+ /**
87
+ * Zero-based line number within the script.
88
+ */
89
+ lineNumber: number;
90
+
91
+ /**
92
+ * CDP script identifier.
93
+ */
94
+ scriptId: string;
95
+
96
+ /**
97
+ * URL or name of the script file.
98
+ */
99
+ url: string;
100
+ }
101
+ }
102
+
103
+ /**
104
+ * A browser console error or uncaught JavaScript exception event. Emitted from two
105
+ * distinct CDP sources with different data shapes. Runtime.consoleAPICalled
106
+ * (console.error calls) produces level, text, args, and stack_trace.
107
+ * Runtime.exceptionThrown (uncaught exceptions) produces text, line, column,
108
+ * source_url, and stack_trace. Fields not applicable to the source are absent.
109
+ */
110
+ export interface BrowserConsoleErrorEvent {
111
+ /**
112
+ * Provenance metadata identifying which producer emitted the event.
113
+ */
114
+ source: BrowserEventSource;
115
+
116
+ /**
117
+ * Event timestamp in Unix microseconds.
118
+ */
119
+ ts: number;
120
+
121
+ type: 'console_error';
122
+
123
+ /**
124
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
125
+ * events. Identifies the target, frame, and navigation epoch in which the event
126
+ * occurred.
127
+ */
128
+ data?: BrowserConsoleErrorEvent.Data;
129
+
130
+ /**
131
+ * True if the data field was truncated due to size limits.
132
+ */
133
+ truncated?: boolean;
134
+ }
135
+
136
+ export namespace BrowserConsoleErrorEvent {
137
+ /**
138
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
139
+ * events. Identifies the target, frame, and navigation epoch in which the event
140
+ * occurred.
141
+ */
142
+ export interface Data extends TelemetryAPI.BrowserEventContext {
143
+ /**
144
+ * Error message text. Present in both source paths.
145
+ */
146
+ text: string;
147
+
148
+ /**
149
+ * All console arguments coerced to strings. Present only when sourced from
150
+ * Runtime.consoleAPICalled.
151
+ */
152
+ args?: Array<string>;
153
+
154
+ /**
155
+ * Column number in the script where the exception was thrown. Present only when
156
+ * sourced from Runtime.exceptionThrown.
157
+ */
158
+ column?: number;
159
+
160
+ /**
161
+ * CDP console type value, always "error". Present only when sourced from
162
+ * Runtime.consoleAPICalled.
163
+ */
164
+ level?: string;
165
+
166
+ /**
167
+ * Line number in the script where the exception was thrown. Present only when
168
+ * sourced from Runtime.exceptionThrown.
169
+ */
170
+ line?: number;
171
+
172
+ /**
173
+ * URL of the script file that threw the exception. Present only when sourced from
174
+ * Runtime.exceptionThrown.
175
+ */
176
+ source_url?: string;
177
+
178
+ /**
179
+ * CDP Runtime.StackTrace representing the JavaScript call stack at the time of an
180
+ * event. Fields use CDP naming conventions rather than snake_case to match the
181
+ * Chrome DevTools Protocol wire format.
182
+ */
183
+ stack_trace?: TelemetryAPI.BrowserCallStack;
184
+ }
185
+ }
186
+
187
+ /**
188
+ * A browser console log event (console.log, console.info, console.warn, etc.).
189
+ */
190
+ export interface BrowserConsoleLogEvent {
191
+ /**
192
+ * Provenance metadata identifying which producer emitted the event.
193
+ */
194
+ source: BrowserEventSource;
195
+
196
+ /**
197
+ * Event timestamp in Unix microseconds.
198
+ */
199
+ ts: number;
200
+
201
+ type: 'console_log';
202
+
203
+ /**
204
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
205
+ * events. Identifies the target, frame, and navigation epoch in which the event
206
+ * occurred.
207
+ */
208
+ data?: BrowserConsoleLogEvent.Data;
209
+
210
+ /**
211
+ * True if the data field was truncated due to size limits.
212
+ */
213
+ truncated?: boolean;
214
+ }
215
+
216
+ export namespace BrowserConsoleLogEvent {
217
+ /**
218
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
219
+ * events. Identifies the target, frame, and navigation epoch in which the event
220
+ * occurred.
221
+ */
222
+ export interface Data extends TelemetryAPI.BrowserEventContext {
223
+ /**
224
+ * All console arguments coerced to strings.
225
+ */
226
+ args?: Array<string>;
227
+
228
+ /**
229
+ * CDP Runtime.consoleAPICalled type, passed through unfiltered from Chrome. error
230
+ * is routed to console_error events instead; all other CDP console types appear
231
+ * here. See CDP spec for the full enum.
232
+ */
233
+ level?: string;
234
+
235
+ /**
236
+ * CDP Runtime.StackTrace representing the JavaScript call stack at the time of an
237
+ * event. Fields use CDP naming conventions rather than snake_case to match the
238
+ * Chrome DevTools Protocol wire format.
239
+ */
240
+ stack_trace?: TelemetryAPI.BrowserCallStack;
241
+
242
+ /**
243
+ * First console argument coerced to string.
244
+ */
245
+ text?: string;
246
+ }
247
+ }
248
+
249
+ /**
250
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
251
+ * events. Identifies the target, frame, and navigation epoch in which the event
252
+ * occurred.
253
+ */
254
+ export interface BrowserEventContext {
255
+ /**
256
+ * CDP frame identifier within the target.
257
+ */
258
+ frame_id?: string;
259
+
260
+ /**
261
+ * CDP document loader identifier, reset on each navigation.
262
+ */
263
+ loader_id?: string;
264
+
265
+ /**
266
+ * Monotonically increasing navigation sequence number, incremented on each
267
+ * top-level navigation within the target.
268
+ */
269
+ nav_seq?: number;
270
+
271
+ /**
272
+ * CDP session identifier for the target connection.
273
+ */
274
+ session_id?: string;
275
+
276
+ /**
277
+ * Browser target identifier (stable across navigations within a tab).
278
+ */
279
+ target_id?: string;
280
+
281
+ /**
282
+ * CDP target type of the page that produced the event.
283
+ */
284
+ target_type?: 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other';
285
+
286
+ /**
287
+ * URL relevant to this event — page URL for navigation and page events, request
288
+ * URL for network events.
289
+ */
290
+ url?: string;
291
+ }
292
+
293
+ /**
294
+ * Provenance metadata identifying which producer emitted the event.
295
+ */
296
+ export interface BrowserEventSource {
297
+ /**
298
+ * Event producer. cdp: Chrome DevTools Protocol events from the browser.
299
+ * kernel_api: Kernel API server. extension: injected Chrome extension.
300
+ * local_process: system process running alongside the browser.
301
+ */
302
+ kind: 'cdp' | 'kernel_api' | 'extension' | 'local_process';
303
+
304
+ /**
305
+ * Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced
306
+ * console events, Runtime.exceptionThrown for uncaught exceptions).
307
+ */
308
+ event?: string;
309
+
310
+ /**
311
+ * Producer-specific context (e.g. CDP target/session/frame IDs).
312
+ */
313
+ metadata?: { [key: string]: string };
314
+ }
315
+
316
+ /**
317
+ * HTTP headers map forwarded as-is from CDP without normalization. Values are
318
+ * typically strings but may be any JSON type.
319
+ */
320
+ export type BrowserHTTPHeaders = { [key: string]: unknown };
321
+
322
+ /**
323
+ * A browser user click event captured via injected page script.
324
+ */
325
+ export interface BrowserInteractionClickEvent {
326
+ /**
327
+ * Provenance metadata identifying which producer emitted the event.
328
+ */
329
+ source: BrowserEventSource;
330
+
331
+ /**
332
+ * Event timestamp in Unix microseconds.
333
+ */
334
+ ts: number;
335
+
336
+ type: 'interaction_click';
337
+
338
+ /**
339
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
340
+ * events. Identifies the target, frame, and navigation epoch in which the event
341
+ * occurred.
342
+ */
343
+ data?: BrowserInteractionClickEvent.Data;
344
+
345
+ /**
346
+ * True if the data field was truncated due to size limits.
347
+ */
348
+ truncated?: boolean;
349
+ }
350
+
351
+ export namespace BrowserInteractionClickEvent {
352
+ /**
353
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
354
+ * events. Identifies the target, frame, and navigation epoch in which the event
355
+ * occurred.
356
+ */
357
+ export interface Data extends TelemetryAPI.BrowserEventContext {
358
+ /**
359
+ * CSS selector path to the clicked element.
360
+ */
361
+ selector?: string;
362
+
363
+ /**
364
+ * HTML tag name of the clicked element in uppercase (e.g. BUTTON, A, DIV).
365
+ */
366
+ tag?: string;
367
+
368
+ /**
369
+ * Visible text content of the clicked element, trimmed.
370
+ */
371
+ text?: string;
372
+
373
+ /**
374
+ * Viewport x-coordinate of the click in CSS pixels.
375
+ */
376
+ x?: number;
377
+
378
+ /**
379
+ * Viewport y-coordinate of the click in CSS pixels.
380
+ */
381
+ y?: number;
382
+ }
383
+ }
384
+
385
+ /**
386
+ * A browser keyboard event captured via injected page script.
387
+ */
388
+ export interface BrowserInteractionKeyEvent {
389
+ /**
390
+ * Provenance metadata identifying which producer emitted the event.
391
+ */
392
+ source: BrowserEventSource;
393
+
394
+ /**
395
+ * Event timestamp in Unix microseconds.
396
+ */
397
+ ts: number;
398
+
399
+ type: 'interaction_key';
400
+
401
+ /**
402
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
403
+ * events. Identifies the target, frame, and navigation epoch in which the event
404
+ * occurred.
405
+ */
406
+ data?: BrowserInteractionKeyEvent.Data;
407
+
408
+ /**
409
+ * True if the data field was truncated due to size limits.
410
+ */
411
+ truncated?: boolean;
412
+ }
413
+
414
+ export namespace BrowserInteractionKeyEvent {
415
+ /**
416
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
417
+ * events. Identifies the target, frame, and navigation epoch in which the event
418
+ * occurred.
419
+ */
420
+ export interface Data extends TelemetryAPI.BrowserEventContext {
421
+ /**
422
+ * Key value from the KeyboardEvent (e.g. Enter, Backspace, a).
423
+ */
424
+ key?: string;
425
+
426
+ /**
427
+ * CSS selector path to the element that had focus when the key was pressed.
428
+ */
429
+ selector?: string;
430
+
431
+ /**
432
+ * HTML tag name of the focused element in uppercase (e.g. INPUT, TEXTAREA, DIV).
433
+ */
434
+ tag?: string;
435
+ }
436
+ }
437
+
438
+ /**
439
+ * A browser scroll settled event emitted after scroll position stops changing,
440
+ * captured via injected page script.
441
+ */
442
+ export interface BrowserInteractionScrollSettledEvent {
443
+ /**
444
+ * Provenance metadata identifying which producer emitted the event.
445
+ */
446
+ source: BrowserEventSource;
447
+
448
+ /**
449
+ * Event timestamp in Unix microseconds.
450
+ */
451
+ ts: number;
452
+
453
+ type: 'interaction_scroll_settled';
454
+
455
+ /**
456
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
457
+ * events. Identifies the target, frame, and navigation epoch in which the event
458
+ * occurred.
459
+ */
460
+ data?: BrowserInteractionScrollSettledEvent.Data;
461
+
462
+ /**
463
+ * True if the data field was truncated due to size limits.
464
+ */
465
+ truncated?: boolean;
466
+ }
467
+
468
+ export namespace BrowserInteractionScrollSettledEvent {
469
+ /**
470
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
471
+ * events. Identifies the target, frame, and navigation epoch in which the event
472
+ * occurred.
473
+ */
474
+ export interface Data extends TelemetryAPI.BrowserEventContext {
475
+ /**
476
+ * Scroll x-position at the start of the scroll gesture in CSS pixels.
477
+ */
478
+ from_x?: number;
479
+
480
+ /**
481
+ * Scroll y-position at the start of the scroll gesture in CSS pixels.
482
+ */
483
+ from_y?: number;
484
+
485
+ /**
486
+ * CSS selector path to the scrolled element.
487
+ */
488
+ target_selector?: string;
489
+
490
+ /**
491
+ * Final scroll x-position after the gesture settled in CSS pixels.
492
+ */
493
+ to_x?: number;
494
+
495
+ /**
496
+ * Final scroll y-position after the gesture settled in CSS pixels.
497
+ */
498
+ to_y?: number;
499
+ }
500
+ }
501
+
502
+ /**
503
+ * The CDP connection to Chrome was lost. Telemetry events may be dropped until
504
+ * monitor_reconnected arrives. Treat any in-progress computed state (network_idle,
505
+ * page_layout_settled) as unreliable until then.
506
+ */
507
+ export interface BrowserMonitorDisconnectedEvent {
508
+ /**
509
+ * Provenance metadata identifying which producer emitted the event.
510
+ */
511
+ source: BrowserEventSource;
512
+
513
+ /**
514
+ * Event timestamp in Unix microseconds.
515
+ */
516
+ ts: number;
517
+
518
+ type: 'monitor_disconnected';
519
+
520
+ data?: BrowserMonitorDisconnectedEvent.Data;
521
+
522
+ /**
523
+ * True if the data field was truncated due to size limits.
524
+ */
525
+ truncated?: boolean;
526
+ }
527
+
528
+ export namespace BrowserMonitorDisconnectedEvent {
529
+ export interface Data {
530
+ /**
531
+ * Reason for the disconnection. chrome_restarted: Chrome process restarted.
532
+ */
533
+ reason?: 'chrome_restarted';
534
+ }
535
+ }
536
+
537
+ /**
538
+ * The CDP session could not be initialized.
539
+ */
540
+ export interface BrowserMonitorInitFailedEvent {
541
+ /**
542
+ * Provenance metadata identifying which producer emitted the event.
543
+ */
544
+ source: BrowserEventSource;
545
+
546
+ /**
547
+ * Event timestamp in Unix microseconds.
548
+ */
549
+ ts: number;
550
+
551
+ type: 'monitor_init_failed';
552
+
553
+ data?: BrowserMonitorInitFailedEvent.Data;
554
+
555
+ /**
556
+ * True if the data field was truncated due to size limits.
557
+ */
558
+ truncated?: boolean;
559
+ }
560
+
561
+ export namespace BrowserMonitorInitFailedEvent {
562
+ export interface Data {
563
+ /**
564
+ * The CDP method or initialization step that failed (e.g. Target.setAutoAttach).
565
+ */
566
+ step?: string;
567
+ }
568
+ }
569
+
570
+ /**
571
+ * The CDP connection to Chrome could not be re-established after exhausting all
572
+ * reconnection attempts. No further telemetry events will arrive on this session.
573
+ */
574
+ export interface BrowserMonitorReconnectFailedEvent {
575
+ /**
576
+ * Provenance metadata identifying which producer emitted the event.
577
+ */
578
+ source: BrowserEventSource;
579
+
580
+ /**
581
+ * Event timestamp in Unix microseconds.
582
+ */
583
+ ts: number;
584
+
585
+ type: 'monitor_reconnect_failed';
586
+
587
+ data?: BrowserMonitorReconnectFailedEvent.Data;
588
+
589
+ /**
590
+ * True if the data field was truncated due to size limits.
591
+ */
592
+ truncated?: boolean;
593
+ }
594
+
595
+ export namespace BrowserMonitorReconnectFailedEvent {
596
+ export interface Data {
597
+ /**
598
+ * Reason for the reconnection failure. reconnect_exhausted: all retry attempts
599
+ * were used up without successfully restoring the CDP connection.
600
+ */
601
+ reason?: 'reconnect_exhausted';
602
+ }
603
+ }
604
+
605
+ /**
606
+ * The CDP connection to Chrome was successfully re-established after a
607
+ * disconnection. Events emitted during the gap are lost. Computed state is reset,
608
+ * so navigation and network tracking restart fresh from this point.
609
+ */
610
+ export interface BrowserMonitorReconnectedEvent {
611
+ /**
612
+ * Provenance metadata identifying which producer emitted the event.
613
+ */
614
+ source: BrowserEventSource;
615
+
616
+ /**
617
+ * Event timestamp in Unix microseconds.
618
+ */
619
+ ts: number;
620
+
621
+ type: 'monitor_reconnected';
622
+
623
+ data?: BrowserMonitorReconnectedEvent.Data;
624
+
625
+ /**
626
+ * True if the data field was truncated due to size limits.
627
+ */
628
+ truncated?: boolean;
629
+ }
630
+
631
+ export namespace BrowserMonitorReconnectedEvent {
632
+ export interface Data {
633
+ /**
634
+ * Wall-clock time in milliseconds taken to reconnect after the disconnection.
635
+ */
636
+ reconnect_duration_ms?: number;
637
+ }
638
+ }
639
+
640
+ /**
641
+ * A periodic screenshot of the browser viewport.
642
+ */
643
+ export interface BrowserMonitorScreenshotEvent {
644
+ /**
645
+ * Provenance metadata identifying which producer emitted the event.
646
+ */
647
+ source: BrowserEventSource;
648
+
649
+ /**
650
+ * Event timestamp in Unix microseconds.
651
+ */
652
+ ts: number;
653
+
654
+ type: 'monitor_screenshot';
655
+
656
+ data?: BrowserMonitorScreenshotEvent.Data;
657
+
658
+ /**
659
+ * True if the data field was truncated due to size limits.
660
+ */
661
+ truncated?: boolean;
662
+ }
663
+
664
+ export namespace BrowserMonitorScreenshotEvent {
665
+ export interface Data {
666
+ /**
667
+ * Base64-encoded PNG screenshot of the browser viewport.
668
+ */
669
+ png?: string;
670
+ }
671
+ }
672
+
673
+ /**
674
+ * A browser network idle event emitted after a 500ms quiet period with no
675
+ * in-flight HTTP requests.
676
+ */
677
+ export interface BrowserNetworkIdleEvent {
678
+ /**
679
+ * Provenance metadata identifying which producer emitted the event.
680
+ */
681
+ source: BrowserEventSource;
682
+
683
+ /**
684
+ * Event timestamp in Unix microseconds.
685
+ */
686
+ ts: number;
687
+
688
+ type: 'network_idle';
689
+
690
+ /**
691
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
692
+ * events. Identifies the target, frame, and navigation epoch in which the event
693
+ * occurred.
694
+ */
695
+ data?: BrowserEventContext;
696
+
697
+ /**
698
+ * True if the data field was truncated due to size limits.
699
+ */
700
+ truncated?: boolean;
701
+ }
702
+
703
+ /**
704
+ * A browser network loading failed event. If the request was already in flight
705
+ * when CDP attached (no prior network_request was emitted for it), url, frame_id,
706
+ * loader_id, and resource_type are absent; BrowserEventContext is partially
707
+ * populated in that case.
708
+ */
709
+ export interface BrowserNetworkLoadingFailedEvent {
710
+ /**
711
+ * Provenance metadata identifying which producer emitted the event.
712
+ */
713
+ source: BrowserEventSource;
714
+
715
+ /**
716
+ * Event timestamp in Unix microseconds.
717
+ */
718
+ ts: number;
719
+
720
+ type: 'network_loading_failed';
721
+
722
+ /**
723
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
724
+ * events. Identifies the target, frame, and navigation epoch in which the event
725
+ * occurred.
726
+ */
727
+ data?: BrowserNetworkLoadingFailedEvent.Data;
728
+
729
+ /**
730
+ * True if the data field was truncated due to size limits.
731
+ */
732
+ truncated?: boolean;
733
+ }
734
+
735
+ export namespace BrowserNetworkLoadingFailedEvent {
736
+ /**
737
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
738
+ * events. Identifies the target, frame, and navigation epoch in which the event
739
+ * occurred.
740
+ */
741
+ export interface Data extends TelemetryAPI.BrowserEventContext {
742
+ /**
743
+ * True if the request was canceled by the browser or page script.
744
+ */
745
+ canceled?: boolean;
746
+
747
+ /**
748
+ * Network error description (e.g. net::ERR_CONNECTION_REFUSED).
749
+ */
750
+ error_text?: string;
751
+
752
+ /**
753
+ * CDP request identifier matching the originating network_request event.
754
+ */
755
+ request_id?: string;
756
+
757
+ /**
758
+ * CDP Network.ResourceType for the request, passed through as-is from Chrome.
759
+ * Known values include Document, Fetch, XHR, Script, Stylesheet, Image, Media,
760
+ * Font, TextTrack, EventSource, WebSocket, Manifest, Prefetch, Other, and more.
761
+ */
762
+ resource_type?: string;
763
+ }
764
+ }
765
+
766
+ /**
767
+ * A browser network request sent event.
768
+ */
769
+ export interface BrowserNetworkRequestEvent {
770
+ /**
771
+ * Provenance metadata identifying which producer emitted the event.
772
+ */
773
+ source: BrowserEventSource;
774
+
775
+ /**
776
+ * Event timestamp in Unix microseconds.
777
+ */
778
+ ts: number;
779
+
780
+ type: 'network_request';
781
+
782
+ /**
783
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
784
+ * events. Identifies the target, frame, and navigation epoch in which the event
785
+ * occurred.
786
+ */
787
+ data?: BrowserNetworkRequestEvent.Data;
788
+
789
+ /**
790
+ * True if the data field was truncated due to size limits.
791
+ */
792
+ truncated?: boolean;
793
+ }
794
+
795
+ export namespace BrowserNetworkRequestEvent {
796
+ /**
797
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
798
+ * events. Identifies the target, frame, and navigation epoch in which the event
799
+ * occurred.
800
+ */
801
+ export interface Data extends TelemetryAPI.BrowserEventContext {
802
+ /**
803
+ * URL of the document that initiated the request.
804
+ */
805
+ document_url?: string;
806
+
807
+ /**
808
+ * Request headers.
809
+ */
810
+ headers?: TelemetryAPI.BrowserHTTPHeaders;
811
+
812
+ /**
813
+ * CDP Initiator.type indicating what caused the request, passed through as-is from
814
+ * Chrome. Known values include script, parser, preload, and other.
815
+ */
816
+ initiator_type?: string;
817
+
818
+ /**
819
+ * True if this request is the result of a redirect.
820
+ */
821
+ is_redirect?: boolean;
822
+
823
+ /**
824
+ * HTTP method as sent on the wire (e.g. GET, POST).
825
+ */
826
+ method?: string;
827
+
828
+ /**
829
+ * Request body for POST/PUT requests, if available.
830
+ */
831
+ post_data?: string;
832
+
833
+ /**
834
+ * Original URL before the redirect, present when is_redirect is true.
835
+ */
836
+ redirect_url?: string;
837
+
838
+ /**
839
+ * CDP request identifier, unique within the session.
840
+ */
841
+ request_id?: string;
842
+
843
+ /**
844
+ * CDP Network.ResourceType for the request, passed through as-is from Chrome.
845
+ * Known values include Document, Fetch, XHR, Script, Stylesheet, Image, Media,
846
+ * Font, TextTrack, EventSource, WebSocket, Manifest, Prefetch, Other, and more.
847
+ */
848
+ resource_type?: string;
849
+ }
850
+ }
851
+
852
+ /**
853
+ * A browser network response received event. Fired after the response body is
854
+ * fully received, not when headers arrive.
855
+ */
856
+ export interface BrowserNetworkResponseEvent {
857
+ /**
858
+ * Provenance metadata identifying which producer emitted the event.
859
+ */
860
+ source: BrowserEventSource;
861
+
862
+ /**
863
+ * Event timestamp in Unix microseconds.
864
+ */
865
+ ts: number;
866
+
867
+ type: 'network_response';
868
+
869
+ /**
870
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
871
+ * events. Identifies the target, frame, and navigation epoch in which the event
872
+ * occurred.
873
+ */
874
+ data?: BrowserNetworkResponseEvent.Data;
875
+
876
+ /**
877
+ * True if the data field was truncated due to size limits.
878
+ */
879
+ truncated?: boolean;
880
+ }
881
+
882
+ export namespace BrowserNetworkResponseEvent {
883
+ /**
884
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
885
+ * events. Identifies the target, frame, and navigation epoch in which the event
886
+ * occurred.
887
+ */
888
+ export interface Data extends TelemetryAPI.BrowserEventContext {
889
+ /**
890
+ * Truncated response body, present only for text MIME types.
891
+ */
892
+ body?: string;
893
+
894
+ /**
895
+ * Response headers.
896
+ */
897
+ headers?: TelemetryAPI.BrowserHTTPHeaders;
898
+
899
+ /**
900
+ * HTTP method of the original request.
901
+ */
902
+ method?: string;
903
+
904
+ /**
905
+ * MIME type of the response (e.g. text/html, application/json).
906
+ */
907
+ mime_type?: string;
908
+
909
+ /**
910
+ * CDP request identifier matching the originating network_request event.
911
+ */
912
+ request_id?: string;
913
+
914
+ /**
915
+ * CDP Network.ResourceType for the request, passed through as-is from Chrome.
916
+ * Known values include Document, Fetch, XHR, Script, Stylesheet, Image, Media,
917
+ * Font, TextTrack, EventSource, WebSocket, Manifest, Prefetch, Other, and more.
918
+ */
919
+ resource_type?: string;
920
+
921
+ /**
922
+ * HTTP response status code.
923
+ */
924
+ status?: number;
925
+
926
+ /**
927
+ * HTTP response status text (e.g. OK, Not Found).
928
+ */
929
+ status_text?: string;
930
+ }
931
+ }
932
+
933
+ /**
934
+ * A browser DOMContentLoaded event (CDP Page.domContentEventFired).
935
+ */
936
+ export interface BrowserPageDomContentLoadedEvent {
937
+ /**
938
+ * Provenance metadata identifying which producer emitted the event.
939
+ */
940
+ source: BrowserEventSource;
941
+
942
+ /**
943
+ * Event timestamp in Unix microseconds.
944
+ */
945
+ ts: number;
946
+
947
+ type: 'page_dom_content_loaded';
948
+
949
+ /**
950
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
951
+ * events. Identifies the target, frame, and navigation epoch in which the event
952
+ * occurred.
953
+ */
954
+ data?: BrowserPageDomContentLoadedEvent.Data;
955
+
956
+ /**
957
+ * True if the data field was truncated due to size limits.
958
+ */
959
+ truncated?: boolean;
960
+ }
961
+
962
+ export namespace BrowserPageDomContentLoadedEvent {
963
+ /**
964
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
965
+ * events. Identifies the target, frame, and navigation epoch in which the event
966
+ * occurred.
967
+ */
968
+ export interface Data extends TelemetryAPI.BrowserEventContext {
969
+ /**
970
+ * Chrome monotonic clock value in seconds at which DOMContentLoaded fired,
971
+ * relative to browser process start (not Unix epoch). Use ts for wall-clock time.
972
+ */
973
+ cdp_timestamp?: number;
974
+ }
975
+ }
976
+
977
+ /**
978
+ * A browser layout settled event emitted 1 second after page load with no
979
+ * intervening layout shifts, indicating visual stability. Each layout shift resets
980
+ * the 1-second timer.
981
+ */
982
+ export interface BrowserPageLayoutSettledEvent {
983
+ /**
984
+ * Provenance metadata identifying which producer emitted the event.
985
+ */
986
+ source: BrowserEventSource;
987
+
988
+ /**
989
+ * Event timestamp in Unix microseconds.
990
+ */
991
+ ts: number;
992
+
993
+ type: 'page_layout_settled';
994
+
995
+ /**
996
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
997
+ * events. Identifies the target, frame, and navigation epoch in which the event
998
+ * occurred.
999
+ */
1000
+ data?: BrowserEventContext;
1001
+
1002
+ /**
1003
+ * True if the data field was truncated due to size limits.
1004
+ */
1005
+ truncated?: boolean;
1006
+ }
1007
+
1008
+ /**
1009
+ * A browser cumulative layout shift (CLS) event from the Performance Timeline API.
1010
+ */
1011
+ export interface BrowserPageLayoutShiftEvent {
1012
+ /**
1013
+ * Provenance metadata identifying which producer emitted the event.
1014
+ */
1015
+ source: BrowserEventSource;
1016
+
1017
+ /**
1018
+ * Event timestamp in Unix microseconds.
1019
+ */
1020
+ ts: number;
1021
+
1022
+ type: 'page_layout_shift';
1023
+
1024
+ /**
1025
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1026
+ * events. Identifies the target, frame, and navigation epoch in which the event
1027
+ * occurred.
1028
+ */
1029
+ data?: BrowserPageLayoutShiftEvent.Data;
1030
+
1031
+ /**
1032
+ * True if the data field was truncated due to size limits.
1033
+ */
1034
+ truncated?: boolean;
1035
+ }
1036
+
1037
+ export namespace BrowserPageLayoutShiftEvent {
1038
+ /**
1039
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1040
+ * events. Identifies the target, frame, and navigation epoch in which the event
1041
+ * occurred.
1042
+ */
1043
+ export interface Data extends TelemetryAPI.BrowserEventContext {
1044
+ /**
1045
+ * Duration of the layout shift entry in milliseconds (always 0 for layout shifts
1046
+ * per spec).
1047
+ */
1048
+ duration?: number;
1049
+
1050
+ /**
1051
+ * PerformanceLayoutShift attributes from the Performance Timeline entry.
1052
+ */
1053
+ layout_shift_details?: Data.LayoutShiftDetails;
1054
+
1055
+ /**
1056
+ * CDP frame identifier of the frame where the layout shift occurred.
1057
+ */
1058
+ source_frame_id?: string;
1059
+
1060
+ /**
1061
+ * Performance Timeline timestamp of the layout shift in milliseconds.
1062
+ */
1063
+ time?: number;
1064
+ }
1065
+
1066
+ export namespace Data {
1067
+ /**
1068
+ * PerformanceLayoutShift attributes from the Performance Timeline entry.
1069
+ */
1070
+ export interface LayoutShiftDetails {
1071
+ /**
1072
+ * True if the layout shift was preceded by user input within 500ms, excluding it
1073
+ * from CLS.
1074
+ */
1075
+ had_recent_input?: boolean;
1076
+
1077
+ /**
1078
+ * Layout shift score for this entry (contribution to CLS).
1079
+ */
1080
+ value?: number;
1081
+ }
1082
+ }
1083
+ }
1084
+
1085
+ /**
1086
+ * A browser Largest Contentful Paint (LCP) event from the Performance Timeline
1087
+ * API.
1088
+ */
1089
+ export interface BrowserPageLcpEvent {
1090
+ /**
1091
+ * Provenance metadata identifying which producer emitted the event.
1092
+ */
1093
+ source: BrowserEventSource;
1094
+
1095
+ /**
1096
+ * Event timestamp in Unix microseconds.
1097
+ */
1098
+ ts: number;
1099
+
1100
+ type: 'page_lcp';
1101
+
1102
+ /**
1103
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1104
+ * events. Identifies the target, frame, and navigation epoch in which the event
1105
+ * occurred.
1106
+ */
1107
+ data?: BrowserPageLcpEvent.Data;
1108
+
1109
+ /**
1110
+ * True if the data field was truncated due to size limits.
1111
+ */
1112
+ truncated?: boolean;
1113
+ }
1114
+
1115
+ export namespace BrowserPageLcpEvent {
1116
+ /**
1117
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1118
+ * events. Identifies the target, frame, and navigation epoch in which the event
1119
+ * occurred.
1120
+ */
1121
+ export interface Data extends TelemetryAPI.BrowserEventContext {
1122
+ /**
1123
+ * LargestContentfulPaint attributes from the Performance Timeline entry.
1124
+ */
1125
+ lcp_details?: Data.LcpDetails;
1126
+
1127
+ /**
1128
+ * CDP frame identifier of the frame where the LCP element was rendered.
1129
+ */
1130
+ source_frame_id?: string;
1131
+
1132
+ /**
1133
+ * Performance Timeline timestamp of the LCP entry in milliseconds.
1134
+ */
1135
+ time?: number;
1136
+ }
1137
+
1138
+ export namespace Data {
1139
+ /**
1140
+ * LargestContentfulPaint attributes from the Performance Timeline entry.
1141
+ */
1142
+ export interface LcpDetails {
1143
+ /**
1144
+ * id attribute of the LCP element, if present.
1145
+ */
1146
+ element_id?: string;
1147
+
1148
+ /**
1149
+ * Load time of the LCP element in milliseconds.
1150
+ */
1151
+ load_time?: number;
1152
+
1153
+ /**
1154
+ * CDP DOM node identifier of the LCP element.
1155
+ */
1156
+ node_id?: number;
1157
+
1158
+ /**
1159
+ * Render time of the LCP element in milliseconds; 0 for cross-origin images
1160
+ * without Timing-Allow-Origin.
1161
+ */
1162
+ render_time?: number;
1163
+
1164
+ /**
1165
+ * Visible area of the LCP element in pixels squared.
1166
+ */
1167
+ size?: number;
1168
+
1169
+ /**
1170
+ * URL of the LCP element for image or video elements.
1171
+ */
1172
+ url?: string;
1173
+ }
1174
+ }
1175
+ }
1176
+
1177
+ /**
1178
+ * A browser page load event (CDP Page.loadEventFired).
1179
+ */
1180
+ export interface BrowserPageLoadEvent {
1181
+ /**
1182
+ * Provenance metadata identifying which producer emitted the event.
1183
+ */
1184
+ source: BrowserEventSource;
1185
+
1186
+ /**
1187
+ * Event timestamp in Unix microseconds.
1188
+ */
1189
+ ts: number;
1190
+
1191
+ type: 'page_load';
1192
+
1193
+ /**
1194
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1195
+ * events. Identifies the target, frame, and navigation epoch in which the event
1196
+ * occurred.
1197
+ */
1198
+ data?: BrowserPageLoadEvent.Data;
1199
+
1200
+ /**
1201
+ * True if the data field was truncated due to size limits.
1202
+ */
1203
+ truncated?: boolean;
1204
+ }
1205
+
1206
+ export namespace BrowserPageLoadEvent {
1207
+ /**
1208
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1209
+ * events. Identifies the target, frame, and navigation epoch in which the event
1210
+ * occurred.
1211
+ */
1212
+ export interface Data extends TelemetryAPI.BrowserEventContext {
1213
+ /**
1214
+ * Chrome monotonic clock value in seconds at which the load event fired, relative
1215
+ * to browser process start (not Unix epoch). Use ts for wall-clock time.
1216
+ */
1217
+ cdp_timestamp?: number;
1218
+ }
1219
+ }
1220
+
1221
+ /**
1222
+ * A browser page navigation started event (CDP Page.frameNavigated). Carries nav
1223
+ * context fields inline but not nav_seq, as this event resets the navigation
1224
+ * epoch.
1225
+ */
1226
+ export interface BrowserPageNavigationEvent {
1227
+ /**
1228
+ * Provenance metadata identifying which producer emitted the event.
1229
+ */
1230
+ source: BrowserEventSource;
1231
+
1232
+ /**
1233
+ * Event timestamp in Unix microseconds.
1234
+ */
1235
+ ts: number;
1236
+
1237
+ type: 'page_navigation';
1238
+
1239
+ data?: BrowserPageNavigationEvent.Data;
1240
+
1241
+ /**
1242
+ * True if the data field was truncated due to size limits.
1243
+ */
1244
+ truncated?: boolean;
1245
+ }
1246
+
1247
+ export namespace BrowserPageNavigationEvent {
1248
+ export interface Data {
1249
+ /**
1250
+ * CDP frame identifier of the navigated frame.
1251
+ */
1252
+ frame_id?: string;
1253
+
1254
+ /**
1255
+ * New CDP document loader identifier assigned for this navigation.
1256
+ */
1257
+ loader_id?: string;
1258
+
1259
+ /**
1260
+ * Parent frame identifier for subframe navigations; absent for top-level
1261
+ * navigations.
1262
+ */
1263
+ parent_frame_id?: string;
1264
+
1265
+ /**
1266
+ * CDP session identifier.
1267
+ */
1268
+ session_id?: string;
1269
+
1270
+ /**
1271
+ * Browser target identifier.
1272
+ */
1273
+ target_id?: string;
1274
+
1275
+ /**
1276
+ * CDP target type of the page that produced the event.
1277
+ */
1278
+ target_type?: 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other';
1279
+
1280
+ /**
1281
+ * URL navigated to.
1282
+ */
1283
+ url?: string;
1284
+ }
1285
+ }
1286
+
1287
+ /**
1288
+ * Emitted when page_dom_content_loaded and page_layout_settled have both fired for
1289
+ * the same navigation, indicating the page is loaded and visually stable.
1290
+ * Independent of network_idle; a single pending request does not block it.
1291
+ */
1292
+ export interface BrowserPageNavigationSettledEvent {
1293
+ /**
1294
+ * Provenance metadata identifying which producer emitted the event.
1295
+ */
1296
+ source: BrowserEventSource;
1297
+
1298
+ /**
1299
+ * Event timestamp in Unix microseconds.
1300
+ */
1301
+ ts: number;
1302
+
1303
+ type: 'page_navigation_settled';
1304
+
1305
+ /**
1306
+ * Browser event context stamped by the browser monitor onto all CDP-sourced
1307
+ * events. Identifies the target, frame, and navigation epoch in which the event
1308
+ * occurred.
1309
+ */
1310
+ data?: BrowserEventContext;
1311
+
1312
+ /**
1313
+ * True if the data field was truncated due to size limits.
1314
+ */
1315
+ truncated?: boolean;
1316
+ }
1317
+
1318
+ /**
1319
+ * A new browser tab or target was opened (CDP Target.attachedToTarget for page
1320
+ * targets). Fires before a CDP session is attached to the new target, so
1321
+ * session_id, frame_id, loader_id, and nav_seq are absent; this event does not
1322
+ * compose BrowserEventContext. Consumers reading context fields generically should
1323
+ * treat it as a special case.
1324
+ */
1325
+ export interface BrowserPageTabOpenedEvent {
1326
+ /**
1327
+ * Provenance metadata identifying which producer emitted the event.
1328
+ */
1329
+ source: BrowserEventSource;
1330
+
1331
+ /**
1332
+ * Event timestamp in Unix microseconds.
1333
+ */
1334
+ ts: number;
1335
+
1336
+ type: 'page_tab_opened';
1337
+
1338
+ data?: BrowserPageTabOpenedEvent.Data;
1339
+
1340
+ /**
1341
+ * True if the data field was truncated due to size limits.
1342
+ */
1343
+ truncated?: boolean;
1344
+ }
1345
+
1346
+ export namespace BrowserPageTabOpenedEvent {
1347
+ export interface Data {
1348
+ /**
1349
+ * Target identifier of the tab that opened this one, if any.
1350
+ */
1351
+ opener_id?: string;
1352
+
1353
+ /**
1354
+ * CDP target identifier for the newly opened tab.
1355
+ */
1356
+ target_id?: string;
1357
+
1358
+ /**
1359
+ * CDP target type of the page that produced the event.
1360
+ */
1361
+ target_type?: 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other';
1362
+
1363
+ /**
1364
+ * Initial page title of the new tab.
1365
+ */
1366
+ title?: string;
1367
+
1368
+ /**
1369
+ * Initial URL of the new tab.
1370
+ */
1371
+ url?: string;
1372
+ }
1373
+ }
1374
+
1375
+ /**
1376
+ * Per-category telemetry capture settings.
1377
+ */
1378
+ export interface BrowserTelemetryCategoriesConfig {
1379
+ /**
1380
+ * Console output (log, warn, error) and uncaught exceptions.
1381
+ */
1382
+ console?: BrowserTelemetryCategoryConfig;
1383
+
1384
+ /**
1385
+ * User interaction events including clicks, keydowns, and scroll-settled events.
1386
+ */
1387
+ interaction?: BrowserTelemetryCategoryConfig;
1388
+
1389
+ /**
1390
+ * HTTP request and response metadata including URL, method, status code, and
1391
+ * timing. Request post data is forwarded as-is from CDP. Text response bodies are
1392
+ * truncated at 8 KB for structured types (JSON, XML, form data) and 4 KB for other
1393
+ * text types. Binary responses (images, fonts, media) are excluded.
1394
+ */
1395
+ network?: BrowserTelemetryCategoryConfig;
1396
+
1397
+ /**
1398
+ * Page lifecycle events including navigation, DOMContentLoaded, load, layout
1399
+ * shifts, and LCP.
1400
+ */
1401
+ page?: BrowserTelemetryCategoryConfig;
1402
+ }
1403
+
1404
+ /**
1405
+ * Per-category telemetry configuration.
1406
+ */
1407
+ export interface BrowserTelemetryCategoryConfig {
1408
+ /**
1409
+ * Whether this category is captured. Defaults to true if omitted.
1410
+ */
1411
+ enabled?: boolean;
1412
+ }
1413
+
1414
+ /**
1415
+ * Active telemetry configuration for a browser session.
1416
+ */
1417
+ export interface BrowserTelemetryConfig {
1418
+ /**
1419
+ * Per-category enable/disable flags.
1420
+ */
1421
+ browser?: BrowserTelemetryCategoriesConfig;
1422
+ }
1423
+
1424
+ /**
1425
+ * Union type representing any browser telemetry event. Discriminated on `type`.
1426
+ * Events with a `monitor_` prefix (monitor_screenshot, monitor_disconnected,
1427
+ * monitor_reconnected, monitor_reconnect_failed, monitor_init_failed) are always
1428
+ * emitted regardless of the category configuration in BrowserTelemetryConfig. All
1429
+ * other event types are controlled by the per-category enable/disable flags.
1430
+ */
1431
+ export type BrowserTelemetryEvent =
1432
+ | BrowserConsoleLogEvent
1433
+ | BrowserConsoleErrorEvent
1434
+ | BrowserNetworkRequestEvent
1435
+ | BrowserNetworkResponseEvent
1436
+ | BrowserNetworkLoadingFailedEvent
1437
+ | BrowserNetworkIdleEvent
1438
+ | BrowserPageNavigationEvent
1439
+ | BrowserPageDomContentLoadedEvent
1440
+ | BrowserPageLoadEvent
1441
+ | BrowserPageTabOpenedEvent
1442
+ | BrowserPageLayoutShiftEvent
1443
+ | BrowserPageLcpEvent
1444
+ | BrowserPageLayoutSettledEvent
1445
+ | BrowserPageNavigationSettledEvent
1446
+ | BrowserInteractionClickEvent
1447
+ | BrowserInteractionKeyEvent
1448
+ | BrowserInteractionScrollSettledEvent
1449
+ | BrowserMonitorScreenshotEvent
1450
+ | BrowserMonitorDisconnectedEvent
1451
+ | BrowserMonitorReconnectedEvent
1452
+ | BrowserMonitorReconnectFailedEvent
1453
+ | BrowserMonitorInitFailedEvent;
1454
+
1455
+ /**
1456
+ * Envelope wrapping a browser telemetry event with its monotonic sequence number.
1457
+ * Each SSE data: frame carries one envelope as JSON. The seq value is also emitted
1458
+ * as the SSE id: field so clients can pass it as Last-Event-ID on reconnect.
1459
+ */
1460
+ export interface TelemetryStreamResponse {
1461
+ /**
1462
+ * Union type representing any browser telemetry event. Discriminated on `type`.
1463
+ * Events with a `monitor_` prefix (monitor_screenshot, monitor_disconnected,
1464
+ * monitor_reconnected, monitor_reconnect_failed, monitor_init_failed) are always
1465
+ * emitted regardless of the category configuration in BrowserTelemetryConfig. All
1466
+ * other event types are controlled by the per-category enable/disable flags.
1467
+ */
1468
+ event: BrowserTelemetryEvent;
1469
+
1470
+ /**
1471
+ * Process-monotonic sequence number assigned by the browser VM. Pass as
1472
+ * Last-Event-ID on reconnect to resume without gaps. Gaps in received seq values
1473
+ * indicate dropped events.
1474
+ */
1475
+ seq: number;
1476
+ }
1477
+
1478
+ export interface TelemetryStreamParams {
1479
+ /**
1480
+ * Last event sequence number for SSE reconnection (sent by SSE clients on
1481
+ * reconnect)
1482
+ */
1483
+ 'Last-Event-ID'?: string;
1484
+ }
1485
+
1486
+ export declare namespace Telemetry {
1487
+ export {
1488
+ type BrowserCallStack as BrowserCallStack,
1489
+ type BrowserConsoleErrorEvent as BrowserConsoleErrorEvent,
1490
+ type BrowserConsoleLogEvent as BrowserConsoleLogEvent,
1491
+ type BrowserEventContext as BrowserEventContext,
1492
+ type BrowserEventSource as BrowserEventSource,
1493
+ type BrowserHTTPHeaders as BrowserHTTPHeaders,
1494
+ type BrowserInteractionClickEvent as BrowserInteractionClickEvent,
1495
+ type BrowserInteractionKeyEvent as BrowserInteractionKeyEvent,
1496
+ type BrowserInteractionScrollSettledEvent as BrowserInteractionScrollSettledEvent,
1497
+ type BrowserMonitorDisconnectedEvent as BrowserMonitorDisconnectedEvent,
1498
+ type BrowserMonitorInitFailedEvent as BrowserMonitorInitFailedEvent,
1499
+ type BrowserMonitorReconnectFailedEvent as BrowserMonitorReconnectFailedEvent,
1500
+ type BrowserMonitorReconnectedEvent as BrowserMonitorReconnectedEvent,
1501
+ type BrowserMonitorScreenshotEvent as BrowserMonitorScreenshotEvent,
1502
+ type BrowserNetworkIdleEvent as BrowserNetworkIdleEvent,
1503
+ type BrowserNetworkLoadingFailedEvent as BrowserNetworkLoadingFailedEvent,
1504
+ type BrowserNetworkRequestEvent as BrowserNetworkRequestEvent,
1505
+ type BrowserNetworkResponseEvent as BrowserNetworkResponseEvent,
1506
+ type BrowserPageDomContentLoadedEvent as BrowserPageDomContentLoadedEvent,
1507
+ type BrowserPageLayoutSettledEvent as BrowserPageLayoutSettledEvent,
1508
+ type BrowserPageLayoutShiftEvent as BrowserPageLayoutShiftEvent,
1509
+ type BrowserPageLcpEvent as BrowserPageLcpEvent,
1510
+ type BrowserPageLoadEvent as BrowserPageLoadEvent,
1511
+ type BrowserPageNavigationEvent as BrowserPageNavigationEvent,
1512
+ type BrowserPageNavigationSettledEvent as BrowserPageNavigationSettledEvent,
1513
+ type BrowserPageTabOpenedEvent as BrowserPageTabOpenedEvent,
1514
+ type BrowserTelemetryCategoriesConfig as BrowserTelemetryCategoriesConfig,
1515
+ type BrowserTelemetryCategoryConfig as BrowserTelemetryCategoryConfig,
1516
+ type BrowserTelemetryConfig as BrowserTelemetryConfig,
1517
+ type BrowserTelemetryEvent as BrowserTelemetryEvent,
1518
+ type TelemetryStreamResponse as TelemetryStreamResponse,
1519
+ type TelemetryStreamParams as TelemetryStreamParams,
1520
+ };
1521
+ }