@onkernel/sdk 0.62.0 → 0.64.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 (108) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/client.d.mts +2 -5
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +2 -5
  5. package/client.d.ts.map +1 -1
  6. package/client.js +0 -3
  7. package/client.js.map +1 -1
  8. package/client.mjs +0 -3
  9. package/client.mjs.map +1 -1
  10. package/internal/qs/formats.d.mts +7 -0
  11. package/internal/qs/formats.d.mts.map +1 -0
  12. package/internal/qs/formats.d.ts +7 -0
  13. package/internal/qs/formats.d.ts.map +1 -0
  14. package/internal/qs/formats.js +13 -0
  15. package/internal/qs/formats.js.map +1 -0
  16. package/internal/qs/formats.mjs +9 -0
  17. package/internal/qs/formats.mjs.map +1 -0
  18. package/internal/qs/index.d.mts +10 -0
  19. package/internal/qs/index.d.mts.map +1 -0
  20. package/internal/qs/index.d.ts +10 -0
  21. package/internal/qs/index.d.ts.map +1 -0
  22. package/internal/qs/index.js +14 -0
  23. package/internal/qs/index.js.map +1 -0
  24. package/internal/qs/index.mjs +10 -0
  25. package/internal/qs/index.mjs.map +1 -0
  26. package/internal/qs/stringify.d.mts +3 -0
  27. package/internal/qs/stringify.d.mts.map +1 -0
  28. package/internal/qs/stringify.d.ts +3 -0
  29. package/internal/qs/stringify.d.ts.map +1 -0
  30. package/internal/qs/stringify.js +277 -0
  31. package/internal/qs/stringify.js.map +1 -0
  32. package/internal/qs/stringify.mjs +274 -0
  33. package/internal/qs/stringify.mjs.map +1 -0
  34. package/internal/qs/types.d.mts +57 -0
  35. package/internal/qs/types.d.mts.map +1 -0
  36. package/internal/qs/types.d.ts +57 -0
  37. package/internal/qs/types.d.ts.map +1 -0
  38. package/internal/qs/types.js +3 -0
  39. package/internal/qs/types.js.map +1 -0
  40. package/internal/qs/types.mjs +2 -0
  41. package/internal/qs/types.mjs.map +1 -0
  42. package/internal/qs/utils.d.mts +15 -0
  43. package/internal/qs/utils.d.mts.map +1 -0
  44. package/internal/qs/utils.d.ts +15 -0
  45. package/internal/qs/utils.d.ts.map +1 -0
  46. package/internal/qs/utils.js +230 -0
  47. package/internal/qs/utils.js.map +1 -0
  48. package/internal/qs/utils.mjs +217 -0
  49. package/internal/qs/utils.mjs.map +1 -0
  50. package/internal/utils/query.d.mts +0 -3
  51. package/internal/utils/query.d.mts.map +1 -1
  52. package/internal/utils/query.d.ts +0 -3
  53. package/internal/utils/query.d.ts.map +1 -1
  54. package/internal/utils/query.js +3 -16
  55. package/internal/utils/query.js.map +1 -1
  56. package/internal/utils/query.mjs +2 -16
  57. package/internal/utils/query.mjs.map +1 -1
  58. package/package.json +1 -1
  59. package/resources/browser-pools.d.mts +9 -0
  60. package/resources/browser-pools.d.mts.map +1 -1
  61. package/resources/browser-pools.d.ts +9 -0
  62. package/resources/browser-pools.d.ts.map +1 -1
  63. package/resources/browsers/browsers.d.mts +81 -18
  64. package/resources/browsers/browsers.d.mts.map +1 -1
  65. package/resources/browsers/browsers.d.ts +81 -18
  66. package/resources/browsers/browsers.d.ts.map +1 -1
  67. package/resources/browsers/browsers.js.map +1 -1
  68. package/resources/browsers/browsers.mjs.map +1 -1
  69. package/resources/browsers/index.d.mts +2 -2
  70. package/resources/browsers/index.d.mts.map +1 -1
  71. package/resources/browsers/index.d.ts +2 -2
  72. package/resources/browsers/index.d.ts.map +1 -1
  73. package/resources/browsers/index.js.map +1 -1
  74. package/resources/browsers/index.mjs.map +1 -1
  75. package/resources/browsers/telemetry.d.mts +408 -20
  76. package/resources/browsers/telemetry.d.mts.map +1 -1
  77. package/resources/browsers/telemetry.d.ts +408 -20
  78. package/resources/browsers/telemetry.d.ts.map +1 -1
  79. package/resources/index.d.mts +1 -1
  80. package/resources/index.d.mts.map +1 -1
  81. package/resources/index.d.ts +1 -1
  82. package/resources/index.d.ts.map +1 -1
  83. package/resources/index.js.map +1 -1
  84. package/resources/index.mjs.map +1 -1
  85. package/resources/invocations.d.mts +9 -0
  86. package/resources/invocations.d.mts.map +1 -1
  87. package/resources/invocations.d.ts +9 -0
  88. package/resources/invocations.d.ts.map +1 -1
  89. package/src/client.ts +2 -3
  90. package/src/internal/qs/LICENSE.md +13 -0
  91. package/src/internal/qs/README.md +3 -0
  92. package/src/internal/qs/formats.ts +10 -0
  93. package/src/internal/qs/index.ts +13 -0
  94. package/src/internal/qs/stringify.ts +385 -0
  95. package/src/internal/qs/types.ts +71 -0
  96. package/src/internal/qs/utils.ts +265 -0
  97. package/src/internal/utils/query.ts +2 -18
  98. package/src/resources/browser-pools.ts +11 -0
  99. package/src/resources/browsers/browsers.ts +103 -15
  100. package/src/resources/browsers/index.ts +9 -0
  101. package/src/resources/browsers/telemetry.ts +507 -19
  102. package/src/resources/index.ts +1 -0
  103. package/src/resources/invocations.ts +11 -0
  104. package/src/version.ts +1 -1
  105. package/version.d.mts +1 -1
  106. package/version.d.ts +1 -1
  107. package/version.js +1 -1
  108. package/version.mjs +1 -1
@@ -0,0 +1,265 @@
1
+ import { RFC1738 } from './formats';
2
+ import type { DefaultEncoder, Format } from './types';
3
+ import { isArray } from '../utils/values';
4
+
5
+ export let has = (obj: object, key: PropertyKey): boolean => (
6
+ (has = (Object as any).hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),
7
+ has(obj, key)
8
+ );
9
+
10
+ const hex_table = /* @__PURE__ */ (() => {
11
+ const array = [];
12
+ for (let i = 0; i < 256; ++i) {
13
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
14
+ }
15
+
16
+ return array;
17
+ })();
18
+
19
+ function compact_queue<T extends Record<string, any>>(queue: Array<{ obj: T; prop: string }>) {
20
+ while (queue.length > 1) {
21
+ const item = queue.pop();
22
+ if (!item) continue;
23
+
24
+ const obj = item.obj[item.prop];
25
+
26
+ if (isArray(obj)) {
27
+ const compacted: unknown[] = [];
28
+
29
+ for (let j = 0; j < obj.length; ++j) {
30
+ if (typeof obj[j] !== 'undefined') {
31
+ compacted.push(obj[j]);
32
+ }
33
+ }
34
+
35
+ // @ts-ignore
36
+ item.obj[item.prop] = compacted;
37
+ }
38
+ }
39
+ }
40
+
41
+ function array_to_object(source: any[], options: { plainObjects: boolean }) {
42
+ const obj = options && options.plainObjects ? Object.create(null) : {};
43
+ for (let i = 0; i < source.length; ++i) {
44
+ if (typeof source[i] !== 'undefined') {
45
+ obj[i] = source[i];
46
+ }
47
+ }
48
+
49
+ return obj;
50
+ }
51
+
52
+ export function merge(
53
+ target: any,
54
+ source: any,
55
+ options: { plainObjects?: boolean; allowPrototypes?: boolean } = {},
56
+ ) {
57
+ if (!source) {
58
+ return target;
59
+ }
60
+
61
+ if (typeof source !== 'object') {
62
+ if (isArray(target)) {
63
+ target.push(source);
64
+ } else if (target && typeof target === 'object') {
65
+ if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {
66
+ target[source] = true;
67
+ }
68
+ } else {
69
+ return [target, source];
70
+ }
71
+
72
+ return target;
73
+ }
74
+
75
+ if (!target || typeof target !== 'object') {
76
+ return [target].concat(source);
77
+ }
78
+
79
+ let mergeTarget = target;
80
+ if (isArray(target) && !isArray(source)) {
81
+ // @ts-ignore
82
+ mergeTarget = array_to_object(target, options);
83
+ }
84
+
85
+ if (isArray(target) && isArray(source)) {
86
+ source.forEach(function (item, i) {
87
+ if (has(target, i)) {
88
+ const targetItem = target[i];
89
+ if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
90
+ target[i] = merge(targetItem, item, options);
91
+ } else {
92
+ target.push(item);
93
+ }
94
+ } else {
95
+ target[i] = item;
96
+ }
97
+ });
98
+ return target;
99
+ }
100
+
101
+ return Object.keys(source).reduce(function (acc, key) {
102
+ const value = source[key];
103
+
104
+ if (has(acc, key)) {
105
+ acc[key] = merge(acc[key], value, options);
106
+ } else {
107
+ acc[key] = value;
108
+ }
109
+ return acc;
110
+ }, mergeTarget);
111
+ }
112
+
113
+ export function assign_single_source(target: any, source: any) {
114
+ return Object.keys(source).reduce(function (acc, key) {
115
+ acc[key] = source[key];
116
+ return acc;
117
+ }, target);
118
+ }
119
+
120
+ export function decode(str: string, _: any, charset: string) {
121
+ const strWithoutPlus = str.replace(/\+/g, ' ');
122
+ if (charset === 'iso-8859-1') {
123
+ // unescape never throws, no try...catch needed:
124
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
125
+ }
126
+ // utf-8
127
+ try {
128
+ return decodeURIComponent(strWithoutPlus);
129
+ } catch (e) {
130
+ return strWithoutPlus;
131
+ }
132
+ }
133
+
134
+ const limit = 1024;
135
+
136
+ export const encode: (
137
+ str: any,
138
+ defaultEncoder: DefaultEncoder,
139
+ charset: string,
140
+ type: 'key' | 'value',
141
+ format: Format,
142
+ ) => string = (str, _defaultEncoder, charset, _kind, format: Format) => {
143
+ // This code was originally written by Brian White for the io.js core querystring library.
144
+ // It has been adapted here for stricter adherence to RFC 3986
145
+ if (str.length === 0) {
146
+ return str;
147
+ }
148
+
149
+ let string = str;
150
+ if (typeof str === 'symbol') {
151
+ string = Symbol.prototype.toString.call(str);
152
+ } else if (typeof str !== 'string') {
153
+ string = String(str);
154
+ }
155
+
156
+ if (charset === 'iso-8859-1') {
157
+ return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
158
+ return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
159
+ });
160
+ }
161
+
162
+ let out = '';
163
+ for (let j = 0; j < string.length; j += limit) {
164
+ const segment = string.length >= limit ? string.slice(j, j + limit) : string;
165
+ const arr = [];
166
+
167
+ for (let i = 0; i < segment.length; ++i) {
168
+ let c = segment.charCodeAt(i);
169
+ if (
170
+ c === 0x2d || // -
171
+ c === 0x2e || // .
172
+ c === 0x5f || // _
173
+ c === 0x7e || // ~
174
+ (c >= 0x30 && c <= 0x39) || // 0-9
175
+ (c >= 0x41 && c <= 0x5a) || // a-z
176
+ (c >= 0x61 && c <= 0x7a) || // A-Z
177
+ (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )
178
+ ) {
179
+ arr[arr.length] = segment.charAt(i);
180
+ continue;
181
+ }
182
+
183
+ if (c < 0x80) {
184
+ arr[arr.length] = hex_table[c];
185
+ continue;
186
+ }
187
+
188
+ if (c < 0x800) {
189
+ arr[arr.length] = hex_table[0xc0 | (c >> 6)]! + hex_table[0x80 | (c & 0x3f)];
190
+ continue;
191
+ }
192
+
193
+ if (c < 0xd800 || c >= 0xe000) {
194
+ arr[arr.length] =
195
+ hex_table[0xe0 | (c >> 12)]! + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];
196
+ continue;
197
+ }
198
+
199
+ i += 1;
200
+ c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));
201
+
202
+ arr[arr.length] =
203
+ hex_table[0xf0 | (c >> 18)]! +
204
+ hex_table[0x80 | ((c >> 12) & 0x3f)] +
205
+ hex_table[0x80 | ((c >> 6) & 0x3f)] +
206
+ hex_table[0x80 | (c & 0x3f)];
207
+ }
208
+
209
+ out += arr.join('');
210
+ }
211
+
212
+ return out;
213
+ };
214
+
215
+ export function compact(value: any) {
216
+ const queue = [{ obj: { o: value }, prop: 'o' }];
217
+ const refs = [];
218
+
219
+ for (let i = 0; i < queue.length; ++i) {
220
+ const item = queue[i];
221
+ // @ts-ignore
222
+ const obj = item.obj[item.prop];
223
+
224
+ const keys = Object.keys(obj);
225
+ for (let j = 0; j < keys.length; ++j) {
226
+ const key = keys[j]!;
227
+ const val = obj[key];
228
+ if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
229
+ queue.push({ obj: obj, prop: key });
230
+ refs.push(val);
231
+ }
232
+ }
233
+ }
234
+
235
+ compact_queue(queue);
236
+
237
+ return value;
238
+ }
239
+
240
+ export function is_regexp(obj: any) {
241
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
242
+ }
243
+
244
+ export function is_buffer(obj: any) {
245
+ if (!obj || typeof obj !== 'object') {
246
+ return false;
247
+ }
248
+
249
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
250
+ }
251
+
252
+ export function combine(a: any, b: any) {
253
+ return [].concat(a, b);
254
+ }
255
+
256
+ export function maybe_map<T>(val: T[], fn: (v: T) => T) {
257
+ if (isArray(val)) {
258
+ const mapped = [];
259
+ for (let i = 0; i < val.length; i += 1) {
260
+ mapped.push(fn(val[i]!));
261
+ }
262
+ return mapped;
263
+ }
264
+ return fn(val);
265
+ }
@@ -1,23 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { KernelError } from '../../core/error';
3
+ import * as qs from '../qs/stringify';
4
4
 
5
- /**
6
- * Basic re-implementation of `qs.stringify` for primitive types.
7
- */
8
5
  export function stringifyQuery(query: object | Record<string, unknown>) {
9
- return Object.entries(query)
10
- .filter(([_, value]) => typeof value !== 'undefined')
11
- .map(([key, value]) => {
12
- if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
13
- return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
14
- }
15
- if (value === null) {
16
- return `${encodeURIComponent(key)}=`;
17
- }
18
- throw new KernelError(
19
- `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`,
20
- );
21
- })
22
- .join('&');
6
+ return qs.stringify(query, { arrayFormat: 'comma' });
23
7
  }
@@ -355,6 +355,11 @@ export interface BrowserPoolAcquireResponse {
355
355
  */
356
356
  kiosk_mode?: boolean;
357
357
 
358
+ /**
359
+ * Human-readable name of the browser session, if one was set at creation.
360
+ */
361
+ name?: string;
362
+
358
363
  /**
359
364
  * Browser pool this session was acquired from, if any.
360
365
  */
@@ -379,6 +384,12 @@ export interface BrowserPoolAcquireResponse {
379
384
  */
380
385
  start_url?: string;
381
386
 
387
+ /**
388
+ * User-defined key-value tags that were set on this browser session, if any.
389
+ * Echoed back when present.
390
+ */
391
+ tags?: BrowsersAPI.Tags;
392
+
382
393
  /**
383
394
  * Active telemetry configuration for the session, if any.
384
395
  */
@@ -53,7 +53,11 @@ import {
53
53
  } from './replays';
54
54
  import * as TelemetryAPI from './telemetry';
55
55
  import {
56
+ BrowserAPICallEvent,
56
57
  BrowserCallStack,
58
+ BrowserCaptchaSolveResultEvent,
59
+ BrowserCdpConnectEvent,
60
+ BrowserCdpDisconnectEvent,
57
61
  BrowserConsoleErrorEvent,
58
62
  BrowserConsoleLogEvent,
59
63
  BrowserEventContext,
@@ -62,6 +66,8 @@ import {
62
66
  BrowserInteractionClickEvent,
63
67
  BrowserInteractionKeyEvent,
64
68
  BrowserInteractionScrollSettledEvent,
69
+ BrowserLiveViewConnectEvent,
70
+ BrowserLiveViewDisconnectEvent,
65
71
  BrowserMonitorDisconnectedEvent,
66
72
  BrowserMonitorInitFailedEvent,
67
73
  BrowserMonitorReconnectFailedEvent,
@@ -79,6 +85,8 @@ import {
79
85
  BrowserPageNavigationEvent,
80
86
  BrowserPageNavigationSettledEvent,
81
87
  BrowserPageTabOpenedEvent,
88
+ BrowserServiceCrashedEvent,
89
+ BrowserSystemOomKillEvent,
82
90
  BrowserTelemetryCategoriesConfig,
83
91
  BrowserTelemetryCategoryConfig,
84
92
  BrowserTelemetryConfig,
@@ -319,6 +327,11 @@ export interface Profile {
319
327
  updated_at?: string;
320
328
  }
321
329
 
330
+ /**
331
+ * User-defined key-value tags.
332
+ */
333
+ export type Tags = { [key: string]: string };
334
+
322
335
  export interface BrowserCreateResponse {
323
336
  /**
324
337
  * Websocket URL for Chrome DevTools Protocol connections to the browser session
@@ -389,6 +402,11 @@ export interface BrowserCreateResponse {
389
402
  */
390
403
  kiosk_mode?: boolean;
391
404
 
405
+ /**
406
+ * Human-readable name of the browser session, if one was set at creation.
407
+ */
408
+ name?: string;
409
+
392
410
  /**
393
411
  * Browser pool this session was acquired from, if any.
394
412
  */
@@ -413,6 +431,12 @@ export interface BrowserCreateResponse {
413
431
  */
414
432
  start_url?: string;
415
433
 
434
+ /**
435
+ * User-defined key-value tags that were set on this browser session, if any.
436
+ * Echoed back when present.
437
+ */
438
+ tags?: Tags;
439
+
416
440
  /**
417
441
  * Active telemetry configuration for the session, if any.
418
442
  */
@@ -510,6 +534,11 @@ export interface BrowserRetrieveResponse {
510
534
  */
511
535
  kiosk_mode?: boolean;
512
536
 
537
+ /**
538
+ * Human-readable name of the browser session, if one was set at creation.
539
+ */
540
+ name?: string;
541
+
513
542
  /**
514
543
  * Browser pool this session was acquired from, if any.
515
544
  */
@@ -534,6 +563,12 @@ export interface BrowserRetrieveResponse {
534
563
  */
535
564
  start_url?: string;
536
565
 
566
+ /**
567
+ * User-defined key-value tags that were set on this browser session, if any.
568
+ * Echoed back when present.
569
+ */
570
+ tags?: Tags;
571
+
537
572
  /**
538
573
  * Active telemetry configuration for the session, if any.
539
574
  */
@@ -631,6 +666,11 @@ export interface BrowserUpdateResponse {
631
666
  */
632
667
  kiosk_mode?: boolean;
633
668
 
669
+ /**
670
+ * Human-readable name of the browser session, if one was set at creation.
671
+ */
672
+ name?: string;
673
+
634
674
  /**
635
675
  * Browser pool this session was acquired from, if any.
636
676
  */
@@ -655,6 +695,12 @@ export interface BrowserUpdateResponse {
655
695
  */
656
696
  start_url?: string;
657
697
 
698
+ /**
699
+ * User-defined key-value tags that were set on this browser session, if any.
700
+ * Echoed back when present.
701
+ */
702
+ tags?: Tags;
703
+
658
704
  /**
659
705
  * Active telemetry configuration for the session, if any.
660
706
  */
@@ -752,6 +798,11 @@ export interface BrowserListResponse {
752
798
  */
753
799
  kiosk_mode?: boolean;
754
800
 
801
+ /**
802
+ * Human-readable name of the browser session, if one was set at creation.
803
+ */
804
+ name?: string;
805
+
755
806
  /**
756
807
  * Browser pool this session was acquired from, if any.
757
808
  */
@@ -776,6 +827,12 @@ export interface BrowserListResponse {
776
827
  */
777
828
  start_url?: string;
778
829
 
830
+ /**
831
+ * User-defined key-value tags that were set on this browser session, if any.
832
+ * Echoed back when present.
833
+ */
834
+ tags?: Tags;
835
+
779
836
  /**
780
837
  * Active telemetry configuration for the session, if any.
781
838
  */
@@ -865,6 +922,13 @@ export interface BrowserCreateParams {
865
922
  */
866
923
  kiosk_mode?: boolean;
867
924
 
925
+ /**
926
+ * Optional human-readable name for the browser session, used to find it later in
927
+ * the dashboard. Must be unique among active sessions within the project. Set at
928
+ * creation time only.
929
+ */
930
+ name?: string;
931
+
868
932
  /**
869
933
  * Profile selection for the browser session. Provide either id or name. If
870
934
  * specified, the matching profile will be loaded into the browser session.
@@ -891,6 +955,12 @@ export interface BrowserCreateParams {
891
955
  */
892
956
  stealth?: boolean;
893
957
 
958
+ /**
959
+ * Optional user-defined key-value tags for the browser session, used to find and
960
+ * group sessions later. Set at creation time only. Up to 50 pairs.
961
+ */
962
+ tags?: Tags;
963
+
894
964
  /**
895
965
  * Telemetry configuration for the browser session. Set enabled to true to start
896
966
  * capture using VM defaults, or provide browser category settings. If omitted,
@@ -936,17 +1006,18 @@ export namespace BrowserCreateParams {
936
1006
  */
937
1007
  export interface Telemetry {
938
1008
  /**
939
- * Per-category enable/disable flags. If enabled is true and browser is omitted or
940
- * empty, the VM default category set is used. Explicitly disabling all four
941
- * categories stops capture on update and starts no capture on create.
1009
+ * Per-category capture flags. Selection is opt-in: only the categories set to
1010
+ * enabled=true are captured; anything omitted is off. If enabled is true and
1011
+ * browser is omitted or empty, the default category set is used. A browser config
1012
+ * that enables nothing stops capture on update and starts no capture on create.
942
1013
  */
943
1014
  browser?: TelemetryAPI.BrowserTelemetryCategoriesConfig;
944
1015
 
945
1016
  /**
946
- * Request shortcut for browser telemetry capture. True enables capture using VM
947
- * defaults unless browser category settings are provided. False stops capture on
948
- * update and starts no capture on create. enabled=false cannot be combined with
949
- * browser category settings.
1017
+ * Request shortcut for browser telemetry capture. True enables capture using the
1018
+ * default category set unless browser category settings are provided. False stops
1019
+ * capture on update and starts no capture on create. enabled=false cannot be
1020
+ * combined with browser category settings.
950
1021
  */
951
1022
  enabled?: boolean;
952
1023
  }
@@ -1003,17 +1074,18 @@ export namespace BrowserUpdateParams {
1003
1074
  */
1004
1075
  export interface Telemetry {
1005
1076
  /**
1006
- * Per-category enable/disable flags. If enabled is true and browser is omitted or
1007
- * empty, the VM default category set is used. Explicitly disabling all four
1008
- * categories stops capture on update and starts no capture on create.
1077
+ * Per-category capture flags. Selection is opt-in: only the categories set to
1078
+ * enabled=true are captured; anything omitted is off. If enabled is true and
1079
+ * browser is omitted or empty, the default category set is used. A browser config
1080
+ * that enables nothing stops capture on update and starts no capture on create.
1009
1081
  */
1010
1082
  browser?: TelemetryAPI.BrowserTelemetryCategoriesConfig;
1011
1083
 
1012
1084
  /**
1013
- * Request shortcut for browser telemetry capture. True enables capture using VM
1014
- * defaults unless browser category settings are provided. False stops capture on
1015
- * update and starts no capture on create. enabled=false cannot be combined with
1016
- * browser category settings.
1085
+ * Request shortcut for browser telemetry capture. True enables capture using the
1086
+ * default category set unless browser category settings are provided. False stops
1087
+ * capture on update and starts no capture on create. enabled=false cannot be
1088
+ * combined with browser category settings.
1017
1089
  */
1018
1090
  enabled?: boolean;
1019
1091
  }
@@ -1040,7 +1112,7 @@ export interface BrowserListParams extends OffsetPaginationParams {
1040
1112
  include_deleted?: boolean;
1041
1113
 
1042
1114
  /**
1043
- * Search browsers by session ID, profile ID, proxy ID, or pool name.
1115
+ * Search browsers by name, session ID, profile ID, proxy ID, or pool name.
1044
1116
  */
1045
1117
  query?: string;
1046
1118
 
@@ -1049,6 +1121,13 @@ export interface BrowserListParams extends OffsetPaginationParams {
1049
1121
  * "deleted" returns only soft-deleted sessions, "all" returns both.
1050
1122
  */
1051
1123
  status?: 'active' | 'deleted' | 'all';
1124
+
1125
+ /**
1126
+ * Filter sessions by tag key-value pairs using deepObject style, e.g.
1127
+ * ?tags[team]=backend&tags[env]=staging. Multiple pairs are ANDed: a session must
1128
+ * match every supplied pair exactly.
1129
+ */
1130
+ tags?: { [key: string]: string };
1052
1131
  }
1053
1132
 
1054
1133
  export interface BrowserCurlParams {
@@ -1118,6 +1197,7 @@ export declare namespace Browsers {
1118
1197
  type BrowserPoolRef as BrowserPoolRef,
1119
1198
  type BrowserUsage as BrowserUsage,
1120
1199
  type Profile as Profile,
1200
+ type Tags as Tags,
1121
1201
  type BrowserCreateResponse as BrowserCreateResponse,
1122
1202
  type BrowserRetrieveResponse as BrowserRetrieveResponse,
1123
1203
  type BrowserUpdateResponse as BrowserUpdateResponse,
@@ -1134,7 +1214,11 @@ export declare namespace Browsers {
1134
1214
 
1135
1215
  export {
1136
1216
  TelemetryAPITelemetry as Telemetry,
1217
+ type BrowserAPICallEvent as BrowserAPICallEvent,
1137
1218
  type BrowserCallStack as BrowserCallStack,
1219
+ type BrowserCaptchaSolveResultEvent as BrowserCaptchaSolveResultEvent,
1220
+ type BrowserCdpConnectEvent as BrowserCdpConnectEvent,
1221
+ type BrowserCdpDisconnectEvent as BrowserCdpDisconnectEvent,
1138
1222
  type BrowserConsoleErrorEvent as BrowserConsoleErrorEvent,
1139
1223
  type BrowserConsoleLogEvent as BrowserConsoleLogEvent,
1140
1224
  type BrowserEventContext as BrowserEventContext,
@@ -1143,6 +1227,8 @@ export declare namespace Browsers {
1143
1227
  type BrowserInteractionClickEvent as BrowserInteractionClickEvent,
1144
1228
  type BrowserInteractionKeyEvent as BrowserInteractionKeyEvent,
1145
1229
  type BrowserInteractionScrollSettledEvent as BrowserInteractionScrollSettledEvent,
1230
+ type BrowserLiveViewConnectEvent as BrowserLiveViewConnectEvent,
1231
+ type BrowserLiveViewDisconnectEvent as BrowserLiveViewDisconnectEvent,
1146
1232
  type BrowserMonitorDisconnectedEvent as BrowserMonitorDisconnectedEvent,
1147
1233
  type BrowserMonitorInitFailedEvent as BrowserMonitorInitFailedEvent,
1148
1234
  type BrowserMonitorReconnectFailedEvent as BrowserMonitorReconnectFailedEvent,
@@ -1160,6 +1246,8 @@ export declare namespace Browsers {
1160
1246
  type BrowserPageNavigationEvent as BrowserPageNavigationEvent,
1161
1247
  type BrowserPageNavigationSettledEvent as BrowserPageNavigationSettledEvent,
1162
1248
  type BrowserPageTabOpenedEvent as BrowserPageTabOpenedEvent,
1249
+ type BrowserServiceCrashedEvent as BrowserServiceCrashedEvent,
1250
+ type BrowserSystemOomKillEvent as BrowserSystemOomKillEvent,
1163
1251
  type BrowserTelemetryCategoriesConfig as BrowserTelemetryCategoriesConfig,
1164
1252
  type BrowserTelemetryCategoryConfig as BrowserTelemetryCategoryConfig,
1165
1253
  type BrowserTelemetryConfig as BrowserTelemetryConfig,
@@ -5,6 +5,7 @@ export {
5
5
  type BrowserPoolRef,
6
6
  type BrowserUsage,
7
7
  type Profile,
8
+ type Tags,
8
9
  type BrowserCreateResponse,
9
10
  type BrowserRetrieveResponse,
10
11
  type BrowserUpdateResponse,
@@ -81,7 +82,11 @@ export {
81
82
  } from './replays';
82
83
  export {
83
84
  Telemetry,
85
+ type BrowserAPICallEvent,
84
86
  type BrowserCallStack,
87
+ type BrowserCaptchaSolveResultEvent,
88
+ type BrowserCdpConnectEvent,
89
+ type BrowserCdpDisconnectEvent,
85
90
  type BrowserConsoleErrorEvent,
86
91
  type BrowserConsoleLogEvent,
87
92
  type BrowserEventContext,
@@ -90,6 +95,8 @@ export {
90
95
  type BrowserInteractionClickEvent,
91
96
  type BrowserInteractionKeyEvent,
92
97
  type BrowserInteractionScrollSettledEvent,
98
+ type BrowserLiveViewConnectEvent,
99
+ type BrowserLiveViewDisconnectEvent,
93
100
  type BrowserMonitorDisconnectedEvent,
94
101
  type BrowserMonitorInitFailedEvent,
95
102
  type BrowserMonitorReconnectFailedEvent,
@@ -107,6 +114,8 @@ export {
107
114
  type BrowserPageNavigationEvent,
108
115
  type BrowserPageNavigationSettledEvent,
109
116
  type BrowserPageTabOpenedEvent,
117
+ type BrowserServiceCrashedEvent,
118
+ type BrowserSystemOomKillEvent,
110
119
  type BrowserTelemetryCategoriesConfig,
111
120
  type BrowserTelemetryCategoryConfig,
112
121
  type BrowserTelemetryConfig,