@opengeni/sdk 0.52.1 → 0.57.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 (54) hide show
  1. package/README.md +61 -7
  2. package/dist/artifacts.js +5 -5
  3. package/dist/{chunk-V5F253OG.js → chunk-GU6JF75T.js} +6 -3
  4. package/dist/chunk-GU6JF75T.js.map +1 -0
  5. package/dist/{chunk-FRJFNDIR.js → chunk-HJ3HHUT5.js} +5 -1
  6. package/dist/chunk-HJ3HHUT5.js.map +1 -0
  7. package/dist/{chunk-KIHGPM7H.js → chunk-JDLDDRNE.js} +20 -14
  8. package/dist/chunk-JDLDDRNE.js.map +1 -0
  9. package/dist/{chunk-FHI4DFIG.js → chunk-JRPFWI6T.js} +2 -2
  10. package/dist/{chunk-ILQZR5N6.js → chunk-PKQ377ED.js} +693 -34
  11. package/dist/chunk-PKQ377ED.js.map +1 -0
  12. package/dist/{chunk-MZWTWOX6.js → chunk-ST5DDKJP.js} +327 -1
  13. package/dist/chunk-ST5DDKJP.js.map +1 -0
  14. package/dist/{chunk-DXDL7EEW.js → chunk-YKZME56C.js} +197 -113
  15. package/dist/chunk-YKZME56C.js.map +1 -0
  16. package/dist/client.d.ts +106 -16
  17. package/dist/codex-realtime-controller.d.ts +3 -0
  18. package/dist/codex-realtime-controller.js +2 -2
  19. package/dist/core.js +7 -7
  20. package/dist/desktop.d.ts +8 -0
  21. package/dist/editable-artifacts.js +4 -4
  22. package/dist/gateway-realtime-transport.d.ts +1 -0
  23. package/dist/gateway-realtime-transport.js +5 -3
  24. package/dist/index.d.ts +6 -2
  25. package/dist/index.js +68 -34
  26. package/dist/index.js.map +1 -1
  27. package/dist/interaction-revision-stream.d.ts +11 -0
  28. package/dist/interaction.d.ts +604 -5
  29. package/dist/interaction.js +27 -1
  30. package/dist/realtime.d.ts +3 -3
  31. package/dist/realtime.js +11 -7
  32. package/dist/realtime.js.map +1 -1
  33. package/dist/types.d.ts +267 -64
  34. package/dist/workspace-live-stream.d.ts +14 -0
  35. package/package.json +2 -2
  36. package/src/client.ts +861 -60
  37. package/src/codex-realtime-controller.ts +25 -7
  38. package/src/codex-realtime-lifecycle.ts +1 -0
  39. package/src/desktop.ts +11 -1
  40. package/src/errors.ts +16 -2
  41. package/src/gateway-realtime-transport.ts +252 -109
  42. package/src/index.ts +42 -13
  43. package/src/interaction-revision-stream.ts +117 -0
  44. package/src/interaction.ts +1049 -5
  45. package/src/realtime.ts +14 -4
  46. package/src/types.ts +336 -67
  47. package/src/workspace-live-stream.ts +137 -0
  48. package/dist/chunk-DXDL7EEW.js.map +0 -1
  49. package/dist/chunk-FRJFNDIR.js.map +0 -1
  50. package/dist/chunk-ILQZR5N6.js.map +0 -1
  51. package/dist/chunk-KIHGPM7H.js.map +0 -1
  52. package/dist/chunk-MZWTWOX6.js.map +0 -1
  53. package/dist/chunk-V5F253OG.js.map +0 -1
  54. /package/dist/{chunk-FHI4DFIG.js.map → chunk-JRPFWI6T.js.map} +0 -0
@@ -9,6 +9,14 @@ export declare const BROWSER_CONTROL_MAX_FRAME_HEADER_BYTES: number;
9
9
  export declare const BROWSER_FRAME_MAX_BYTES: number;
10
10
  export declare const BROWSER_FRAME_MAX_DIMENSION = 32768;
11
11
  export declare const BROWSER_FRAME_MAX_PIXELS = 100000000;
12
+ /** Latest-wins invalidation cursor for workspace Browser/Computer resources. */
13
+ export type WorkspaceInteractionRevisionEvent = {
14
+ workspaceId: string;
15
+ sequence: number;
16
+ revision: number;
17
+ type: "workspace.interaction.changed";
18
+ occurredAt: string;
19
+ };
12
20
  export type InteractionJsonValue = null | string | number | boolean | InteractionJsonValue[] | {
13
21
  [key: string]: InteractionJsonValue;
14
22
  };
@@ -88,6 +96,7 @@ export type BrowserSessionCapabilities = {
88
96
  downloads: boolean;
89
97
  uploads: boolean;
90
98
  clipboard: boolean;
99
+ permissions: boolean;
91
100
  diagnostics: boolean;
92
101
  rawCdp: boolean;
93
102
  linkedComputer: boolean;
@@ -118,6 +127,355 @@ export type BrowserSession = {
118
127
  lastUsedAt: string;
119
128
  failureCode: string | null;
120
129
  };
130
+ export type BrowserClipboard = {
131
+ browserSessionId: string;
132
+ controllerGeneration: string;
133
+ revision: number;
134
+ text: string;
135
+ source: "empty" | "write" | "clear" | "copy" | "paste";
136
+ sourceTargetId: string | null;
137
+ updatedAt: string | null;
138
+ };
139
+ export type InteractionCredentialAuthorityRef = {
140
+ connectionId: string;
141
+ connectionSubjectId: string | null;
142
+ providerDomain: string;
143
+ };
144
+ export type NetworkRouteConfiguration = {
145
+ kind: "direct";
146
+ } | {
147
+ kind: "proxy";
148
+ protocol: "http" | "https" | "socks5";
149
+ host: string;
150
+ port: number;
151
+ credential: InteractionCredentialAuthorityRef | null;
152
+ } | {
153
+ kind: "managed";
154
+ providerId: string;
155
+ routeId: string;
156
+ egressClass: "datacenter" | "residential" | "isp";
157
+ region: string | null;
158
+ credential: InteractionCredentialAuthorityRef | null;
159
+ } | {
160
+ kind: "tunnel";
161
+ placement: InteractionPlacement;
162
+ tunnelId: string;
163
+ };
164
+ export type NetworkRouteConsistency = {
165
+ dns: "placement" | "proxy" | "provider";
166
+ expectedPublicIp: string | null;
167
+ expectedRegion: string | null;
168
+ locale: string | null;
169
+ timezone: string | null;
170
+ geolocation: {
171
+ latitude: number;
172
+ longitude: number;
173
+ accuracyMeters: number;
174
+ } | null;
175
+ webRtc: "default" | "disable_non_proxied_udp" | "proxy_only";
176
+ stability: "session" | "sticky" | "persistent";
177
+ };
178
+ export type NetworkRoute = {
179
+ id: string;
180
+ accountId: string;
181
+ workspaceId: string;
182
+ name: string;
183
+ status: "active" | "archived";
184
+ configuration: NetworkRouteConfiguration;
185
+ consistency: NetworkRouteConsistency;
186
+ version: number;
187
+ createdBySubjectId: string;
188
+ createdAt: string;
189
+ updatedAt: string;
190
+ };
191
+ export type NetworkRouteListResponse = {
192
+ revision: number;
193
+ routes: NetworkRoute[];
194
+ };
195
+ export type CreateNetworkRouteRequest = {
196
+ operationId: string;
197
+ name: string;
198
+ configuration: NetworkRouteConfiguration;
199
+ consistency: NetworkRouteConsistency;
200
+ };
201
+ export type UpdateNetworkRouteRequest = {
202
+ operationId: string;
203
+ expectedVersion: number;
204
+ name?: string | undefined;
205
+ status?: "active" | "archived" | undefined;
206
+ configuration?: NetworkRouteConfiguration | undefined;
207
+ consistency?: NetworkRouteConsistency | undefined;
208
+ };
209
+ export type NetworkRouteMutationResponse = {
210
+ route: NetworkRoute;
211
+ operationId: string;
212
+ replayed: boolean;
213
+ };
214
+ export type SiteAuthFieldPurpose = "identifier" | "password" | "secret" | "totp";
215
+ export type SiteAuthAuthority = {
216
+ id: string;
217
+ kind: "connection_fields";
218
+ label: string;
219
+ credential: InteractionCredentialAuthorityRef;
220
+ fields: Array<{
221
+ id: string;
222
+ purpose: SiteAuthFieldPurpose;
223
+ credentialKey: string;
224
+ digits?: number | undefined;
225
+ periodSeconds?: number | undefined;
226
+ algorithm?: "sha1" | "sha256" | "sha512" | undefined;
227
+ }>;
228
+ } | {
229
+ id: string;
230
+ kind: "human";
231
+ label: string;
232
+ fields: Array<{
233
+ id: string;
234
+ purpose: SiteAuthFieldPurpose;
235
+ }>;
236
+ } | {
237
+ id: string;
238
+ kind: "external_provider";
239
+ label: string;
240
+ adapterId: string;
241
+ connectionId: string;
242
+ credential: InteractionCredentialAuthorityRef | null;
243
+ };
244
+ export type SiteAuthMethod = {
245
+ id: string;
246
+ kind: "password" | "sso" | "magic_link" | "passkey" | "external";
247
+ label: string;
248
+ authorityIds: string[];
249
+ };
250
+ export type SiteAuthHealthPolicy = {
251
+ mode: "on_use" | "maintained";
252
+ intervalSeconds: number | null;
253
+ automaticRepair: boolean;
254
+ };
255
+ export type SiteAuthConnectionConfiguration = {
256
+ name: string;
257
+ accountLabel: string;
258
+ origins: string[];
259
+ loginUrl: string | null;
260
+ verificationUrlPrefixes: string[];
261
+ authorities: SiteAuthAuthority[];
262
+ methods: SiteAuthMethod[];
263
+ preferredIdentityId: string | null;
264
+ preferredPlacement: InteractionPlacement | null;
265
+ preferredNetworkRouteId: string | null;
266
+ healthPolicy: SiteAuthHealthPolicy;
267
+ };
268
+ export type SiteAuthConnection = SiteAuthConnectionConfiguration & {
269
+ id: string;
270
+ accountId: string;
271
+ workspaceId: string;
272
+ status: "active" | "archived";
273
+ verificationState: "unknown" | "verified" | "needs_repair" | "failed";
274
+ lastVerifiedAt: string | null;
275
+ lastVerifiedUrl: string | null;
276
+ lastCheckedAt: string | null;
277
+ nextCheckAt: string | null;
278
+ maintenance: {
279
+ action: "health_check" | "repair";
280
+ sessionId: string | null;
281
+ dueAt: string;
282
+ startedAt: string | null;
283
+ } | null;
284
+ repairCode: string | null;
285
+ version: number;
286
+ createdBySubjectId: string;
287
+ createdAt: string;
288
+ updatedAt: string;
289
+ };
290
+ export type SiteAuthConnectionListResponse = {
291
+ revision: number;
292
+ connections: SiteAuthConnection[];
293
+ };
294
+ export type CreateSiteAuthConnectionRequest = SiteAuthConnectionConfiguration & {
295
+ operationId: string;
296
+ };
297
+ export type UpdateSiteAuthConnectionRequest = Partial<SiteAuthConnectionConfiguration> & {
298
+ operationId: string;
299
+ expectedVersion: number;
300
+ status?: "active" | "archived" | undefined;
301
+ };
302
+ export type SiteAuthConnectionMutationResponse = {
303
+ connection: SiteAuthConnection;
304
+ operationId: string;
305
+ replayed: boolean;
306
+ };
307
+ export type AuthRun = {
308
+ id: string;
309
+ accountId: string;
310
+ workspaceId: string;
311
+ siteAuthConnectionId: string;
312
+ browserSessionId: string;
313
+ targetId: string;
314
+ controllerGeneration: string;
315
+ targetGeneration: string;
316
+ documentGeneration: string | null;
317
+ purpose: "authenticate" | "health_check" | "repair";
318
+ methodId: string | null;
319
+ authorityId: string | null;
320
+ state: "discovering" | "awaiting_choice" | "awaiting_secret" | "awaiting_external_action" | "working" | "verified" | "failed" | "cancelled";
321
+ choices: Array<{
322
+ id: string;
323
+ label: string;
324
+ methodId: string;
325
+ }>;
326
+ pendingFields: Array<{
327
+ id: string;
328
+ label: string;
329
+ purpose: SiteAuthFieldPurpose;
330
+ }>;
331
+ externalAction: {
332
+ kind: "push" | "security_key" | "passkey" | "device" | "human" | "other";
333
+ label: string;
334
+ expiresAt: string | null;
335
+ } | null;
336
+ interventionId: string | null;
337
+ verifiedUrl: string | null;
338
+ failureCode: string | null;
339
+ version: number;
340
+ operationId: string;
341
+ createdBySubjectId: string;
342
+ createdAt: string;
343
+ updatedAt: string;
344
+ settledAt: string | null;
345
+ };
346
+ export type AuthRunListResponse = {
347
+ runs: AuthRun[];
348
+ };
349
+ export type AuthRunMutationResponse = {
350
+ run: AuthRun;
351
+ operationId: string;
352
+ replayed: boolean;
353
+ };
354
+ export type StartAuthRunRequest = {
355
+ operationId: string;
356
+ siteAuthConnectionId: string;
357
+ targetId: string;
358
+ expectedTargetGeneration: string;
359
+ expectedDocumentGeneration: string | null;
360
+ purpose?: "authenticate" | "health_check" | "repair" | undefined;
361
+ methodId?: string | undefined;
362
+ authorityId?: string | undefined;
363
+ };
364
+ export type ReportAuthRunRequest = {
365
+ operationId: string;
366
+ expectedVersion: number;
367
+ methodId?: string | undefined;
368
+ authorityId?: string | undefined;
369
+ state: "awaiting_choice" | "awaiting_secret" | "awaiting_external_action" | "working" | "failed" | "cancelled";
370
+ choices?: AuthRun["choices"] | undefined;
371
+ pendingFields?: AuthRun["pendingFields"] | undefined;
372
+ externalAction?: AuthRun["externalAction"] | undefined;
373
+ failureCode?: string | null | undefined;
374
+ };
375
+ export type ProtectedAuthFillRequest = {
376
+ operationId: string;
377
+ expectedVersion: number;
378
+ expectedTargetGeneration: string;
379
+ expectedDocumentGeneration: string | null;
380
+ expectedFrameId: string | null;
381
+ authorityId: string;
382
+ fields: Array<{
383
+ fieldId: string;
384
+ locator: BrowserLocator;
385
+ }>;
386
+ submit: {
387
+ type: "none";
388
+ } | {
389
+ type: "click";
390
+ locator: BrowserLocator;
391
+ } | {
392
+ type: "press";
393
+ key: string;
394
+ locator?: BrowserLocator | undefined;
395
+ };
396
+ };
397
+ export type ProtectedAuthFillResponse = {
398
+ run: AuthRun;
399
+ status: "submitted" | "working" | "needs_human" | "stale" | "failed";
400
+ operationId: string;
401
+ replayed: boolean;
402
+ };
403
+ export type ExternalAuthRunRequest = {
404
+ operationId: string;
405
+ expectedVersion: number;
406
+ action: "start" | "poll";
407
+ };
408
+ export type ExternalAuthRunResponse = {
409
+ run: AuthRun;
410
+ status: "working" | "needs_human" | "ready_to_verify" | "failed";
411
+ operationId: string;
412
+ replayed: boolean;
413
+ };
414
+ export type ExternalAuthInteractiveRequest = {
415
+ operationId: string;
416
+ expectedVersion: number;
417
+ };
418
+ export type ExternalAuthInteractiveResponse = {
419
+ authRunId: string;
420
+ url: string;
421
+ expiresAt: string | null;
422
+ };
423
+ export type VerifyAuthRunRequest = {
424
+ operationId: string;
425
+ expectedVersion: number;
426
+ };
427
+ export type InteractionIntervention = {
428
+ id: string;
429
+ accountId: string;
430
+ workspaceId: string;
431
+ resourceKind: "browser_session" | "computer_session";
432
+ resourceId: string;
433
+ targetId: string;
434
+ controllerGeneration: string;
435
+ targetGeneration: string;
436
+ documentGeneration: string | null;
437
+ kind: "manual_login" | "mfa" | "external_action" | "confirmation" | "other";
438
+ reason: string;
439
+ status: "open" | "completed" | "dismissed" | "expired" | "cancelled";
440
+ authRunId: string | null;
441
+ originatingSessionId: string;
442
+ originatingTurnId: string | null;
443
+ originatingAttemptId: string | null;
444
+ originatingToolOperationId: string | null;
445
+ responseActorSubjectId: string | null;
446
+ version: number;
447
+ operationId: string;
448
+ expiresAt: string;
449
+ createdAt: string;
450
+ updatedAt: string;
451
+ settledAt: string | null;
452
+ };
453
+ export type InteractionInterventionListResponse = {
454
+ interventions: InteractionIntervention[];
455
+ };
456
+ export type CreateInteractionInterventionRequest = {
457
+ operationId: string;
458
+ resourceKind: "browser_session" | "computer_session";
459
+ resourceId: string;
460
+ targetId: string;
461
+ expectedControllerGeneration: string;
462
+ expectedTargetGeneration: string;
463
+ expectedDocumentGeneration: string | null;
464
+ kind: InteractionIntervention["kind"];
465
+ reason: string;
466
+ authRunId?: string | undefined;
467
+ expiresInSeconds?: number | undefined;
468
+ };
469
+ export type ResolveInteractionInterventionRequest = {
470
+ operationId: string;
471
+ expectedVersion: number;
472
+ outcome: "completed" | "dismissed";
473
+ };
474
+ export type InteractionInterventionMutationResponse = {
475
+ intervention: InteractionIntervention;
476
+ operationId: string;
477
+ replayed: boolean;
478
+ };
121
479
  export type BrowserIdentityStatus = "active" | "archived";
122
480
  export type BrowserRevisionComponentKind = "chromium_profile" | "normalized_web_state" | "provider_snapshot";
123
481
  export type BrowserRevisionPortability = "portable" | "provider_bound" | "placement_bound";
@@ -161,6 +519,7 @@ export type BrowserIdentity = {
161
519
  workspaceId: string;
162
520
  name: string;
163
521
  status: BrowserIdentityStatus;
522
+ version: number;
164
523
  defaultRevisionId: string | null;
165
524
  headGeneration: number;
166
525
  revisionCount: number;
@@ -180,6 +539,13 @@ export type CreateBrowserIdentityRequest = {
180
539
  operationId: string;
181
540
  name: string;
182
541
  };
542
+ export type UpdateBrowserIdentityRequest = {
543
+ operationId: string;
544
+ expectedVersion: number;
545
+ name?: string | undefined;
546
+ status?: BrowserIdentityStatus | undefined;
547
+ defaultRevisionId?: string | undefined;
548
+ };
183
549
  export type BrowserIdentityMutationResponse = {
184
550
  identity: BrowserIdentity;
185
551
  operationId: string;
@@ -210,6 +576,41 @@ export type BrowserTarget = {
210
576
  attached: boolean;
211
577
  createdAt: string;
212
578
  };
579
+ export type BrowserDownloadStatus = "in_progress" | "completed" | "cancelled" | "failed" | "unavailable";
580
+ /** One browser-produced file. Its bytes remain private to the exact browser
581
+ * controller until an explicit save publishes them into the workspace. */
582
+ export type BrowserDownload = {
583
+ id: string;
584
+ browserSessionId: string;
585
+ controllerGeneration: string;
586
+ targetId: string | null;
587
+ filename: string;
588
+ status: BrowserDownloadStatus;
589
+ receivedBytes: number;
590
+ totalBytes: number | null;
591
+ sha256: string | null;
592
+ version: number;
593
+ startedAt: string;
594
+ settledAt: string | null;
595
+ failureCode: string | null;
596
+ };
597
+ export type BrowserDownloadListResponse = {
598
+ browserSessionId: string;
599
+ controllerGeneration: string;
600
+ downloads: BrowserDownload[];
601
+ };
602
+ export type BrowserDownloadSaveRequest = {
603
+ operationId: string;
604
+ destinationPath: string;
605
+ overwrite?: boolean | undefined;
606
+ };
607
+ export type BrowserDownloadSaveResponse = {
608
+ download: BrowserDownload;
609
+ destinationPath: string;
610
+ fileId: string;
611
+ operationId: string;
612
+ replayed: boolean;
613
+ };
213
614
  export type InteractionRect = {
214
615
  x: number;
215
616
  y: number;
@@ -318,6 +719,8 @@ export type BrowserLocator = {
318
719
  kind: "css";
319
720
  selector: string;
320
721
  };
722
+ export type BrowserPermission = "geolocation" | "notifications" | "camera" | "microphone" | "midi" | "midi_sysex" | "sensors" | "idle_detection" | "local_fonts" | "window_management";
723
+ export type BrowserPermissionSetting = "granted" | "denied" | "prompt";
321
724
  export type BrowserAction = {
322
725
  type: "navigate";
323
726
  url: string;
@@ -370,6 +773,7 @@ export type BrowserAction = {
370
773
  deltaX?: number | undefined;
371
774
  deltaY?: number | undefined;
372
775
  button?: "left" | "right" | "middle" | undefined;
776
+ clickCount?: 1 | 2 | undefined;
373
777
  } | {
374
778
  type: "handle_dialog";
375
779
  response: "accept" | "dismiss";
@@ -378,6 +782,16 @@ export type BrowserAction = {
378
782
  type: "upload";
379
783
  locator: BrowserLocator;
380
784
  workspaceFileIds: string[];
785
+ } | {
786
+ type: "clipboard";
787
+ operation: "write" | "clear" | "copy" | "paste";
788
+ text?: string | undefined;
789
+ locator?: BrowserLocator | undefined;
790
+ content?: "selection" | "value" | "text" | undefined;
791
+ } | {
792
+ type: "permission";
793
+ permission: BrowserPermission;
794
+ setting: BrowserPermissionSetting;
381
795
  } | {
382
796
  type: "wait";
383
797
  condition: "load" | "network_idle" | "visible" | "hidden";
@@ -413,9 +827,11 @@ export type CreateBrowserSessionRequest = {
413
827
  name?: string | undefined;
414
828
  initialUrl?: string | undefined;
415
829
  headless?: boolean | undefined;
830
+ engine?: "chromium" | "lightpanda" | undefined;
416
831
  placement?: InteractionPlacement | undefined;
417
832
  identityId?: string | undefined;
418
833
  baseRevisionId?: string | undefined;
834
+ networkRouteId?: string | undefined;
419
835
  linkedComputerSessionId?: string | undefined;
420
836
  };
421
837
  export type BrowserSessionListResponse = {
@@ -453,6 +869,11 @@ export type InteractionFrameStreamAttachment<RelayKind extends 3 | 4 = 3 | 4> =
453
869
  port: number;
454
870
  };
455
871
  };
872
+ export type ComputerFrameStreamAttachment = InteractionFrameStreamAttachment<4> | {
873
+ kind: "direct_rfb";
874
+ url: string;
875
+ protocols: string[];
876
+ };
456
877
  export type BrowserSessionAttachment = {
457
878
  browserSessionId: string;
458
879
  controllerGeneration: string;
@@ -471,6 +892,7 @@ export type BrowserActionRequest = {
471
892
  expectedTargetGeneration: string;
472
893
  expectedDocumentGeneration: string | null;
473
894
  expectedFrameId: string | null;
895
+ observationMode?: "full" | "none" | undefined;
474
896
  action: BrowserAction | BrowserActionBatch;
475
897
  };
476
898
  export type BrowserActionReceipt = {
@@ -499,9 +921,17 @@ export type ComputerSessionCapabilities = {
499
921
  semanticActions: boolean;
500
922
  pointerInput: boolean;
501
923
  keyboardInput: boolean;
924
+ clipboard: boolean;
502
925
  backgroundActions: boolean;
503
926
  parallelApps: boolean;
504
927
  };
928
+ export type ComputerClipboard = {
929
+ computerSessionId: string;
930
+ controllerGeneration: string;
931
+ text: string | null;
932
+ truncated: boolean;
933
+ observedAt: string;
934
+ };
505
935
  export type ComputerSession = {
506
936
  id: string;
507
937
  accountId: string;
@@ -585,6 +1015,10 @@ export type ComputerAction = {
585
1015
  type: "keyboard";
586
1016
  action: "type" | "press";
587
1017
  value: string;
1018
+ } | {
1019
+ type: "clipboard";
1020
+ operation: "write" | "clear" | "copy" | "paste";
1021
+ text?: string | undefined;
588
1022
  } | {
589
1023
  type: "focus";
590
1024
  targetId: string;
@@ -626,7 +1060,7 @@ export type ComputerSessionAttachment = {
626
1060
  computerSessionId: string;
627
1061
  controllerGeneration: string;
628
1062
  targetId: string;
629
- stream: InteractionFrameStreamAttachment<4>;
1063
+ stream: ComputerFrameStreamAttachment;
630
1064
  expiresAt: string;
631
1065
  };
632
1066
  export type ComputerSessionAttachmentRequest = {
@@ -667,18 +1101,43 @@ export type BrowserDiagnosticsOptions = {
667
1101
  };
668
1102
  /** The exact HTTP surface needed by the framework-free interaction client. */
669
1103
  export interface InteractionTransport {
1104
+ listNetworkRoutes(workspaceId: string, options?: NetworkRouteListOptions): Promise<NetworkRouteListResponse>;
1105
+ getNetworkRoute(workspaceId: string, networkRouteId: string, options?: OpenGeniRequestOptions): Promise<NetworkRoute>;
1106
+ createNetworkRoute(workspaceId: string, request: CreateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteMutationResponse>;
1107
+ updateNetworkRoute(workspaceId: string, networkRouteId: string, request: UpdateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteMutationResponse>;
1108
+ listSiteAuthConnections(workspaceId: string, options?: SiteAuthConnectionListOptions): Promise<SiteAuthConnectionListResponse>;
1109
+ getSiteAuthConnection(workspaceId: string, siteAuthConnectionId: string, options?: OpenGeniRequestOptions): Promise<SiteAuthConnection>;
1110
+ createSiteAuthConnection(workspaceId: string, request: CreateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionMutationResponse>;
1111
+ updateSiteAuthConnection(workspaceId: string, siteAuthConnectionId: string, request: UpdateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionMutationResponse>;
1112
+ listAuthRuns(workspaceId: string, options?: AuthRunListOptions): Promise<AuthRunListResponse>;
1113
+ getAuthRun(workspaceId: string, authRunId: string, options?: OpenGeniRequestOptions): Promise<AuthRun>;
1114
+ startBrowserAuthRun(workspaceId: string, browserSessionId: string, request: StartAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1115
+ reportBrowserAuthRun(workspaceId: string, browserSessionId: string, authRunId: string, request: ReportAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1116
+ protectedBrowserAuthFill(workspaceId: string, browserSessionId: string, authRunId: string, request: ProtectedAuthFillRequest, options?: OpenGeniRequestOptions): Promise<ProtectedAuthFillResponse>;
1117
+ advanceExternalBrowserAuthRun(workspaceId: string, browserSessionId: string, authRunId: string, request: ExternalAuthRunRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthRunResponse>;
1118
+ openExternalBrowserAuthFlow(workspaceId: string, browserSessionId: string, authRunId: string, request: ExternalAuthInteractiveRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthInteractiveResponse>;
1119
+ verifyBrowserAuthRun(workspaceId: string, browserSessionId: string, authRunId: string, request: VerifyAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1120
+ listInteractionInterventions(workspaceId: string, options?: InteractionInterventionListOptions): Promise<InteractionInterventionListResponse>;
1121
+ getInteractionIntervention(workspaceId: string, interventionId: string, options?: OpenGeniRequestOptions): Promise<InteractionIntervention>;
1122
+ createInteractionIntervention(workspaceId: string, request: CreateInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionMutationResponse>;
1123
+ resolveInteractionIntervention(workspaceId: string, interventionId: string, request: ResolveInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionMutationResponse>;
670
1124
  listAttachedBrowsers(workspaceId: string, options?: AttachedBrowserDeviceListOptions): Promise<AttachedBrowserDeviceListResponse>;
671
1125
  getAttachedBrowser(workspaceId: string, deviceId: string, options?: OpenGeniRequestOptions): Promise<AttachedBrowserDevice>;
672
1126
  listBrowserIdentities(workspaceId: string, options?: BrowserIdentityListOptions): Promise<BrowserIdentityListResponse>;
673
1127
  getBrowserIdentity(workspaceId: string, identityId: string, options?: OpenGeniRequestOptions): Promise<BrowserIdentity>;
674
1128
  createBrowserIdentity(workspaceId: string, request: CreateBrowserIdentityRequest, options?: OpenGeniRequestOptions): Promise<BrowserIdentityMutationResponse>;
1129
+ updateBrowserIdentity(workspaceId: string, identityId: string, request: UpdateBrowserIdentityRequest, options?: OpenGeniRequestOptions): Promise<BrowserIdentityMutationResponse>;
675
1130
  listBrowserRevisions(workspaceId: string, identityId: string, options?: OpenGeniRequestOptions): Promise<BrowserRevisionListResponse>;
676
1131
  listBrowserSessions(workspaceId: string, options?: OpenGeniRequestOptions): Promise<BrowserSessionListResponse>;
677
1132
  getBrowserSession(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserSession>;
1133
+ readBrowserClipboard(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserClipboard>;
1134
+ listBrowserDownloads(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserDownloadListResponse>;
1135
+ getBrowserDownload(workspaceId: string, browserSessionId: string, downloadId: string, options?: OpenGeniRequestOptions): Promise<BrowserDownload>;
1136
+ saveBrowserDownload(workspaceId: string, browserSessionId: string, downloadId: string, request: BrowserDownloadSaveRequest, options?: OpenGeniRequestOptions): Promise<BrowserDownloadSaveResponse>;
678
1137
  createBrowserSession(workspaceId: string, request: CreateBrowserSessionRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
679
1138
  listBrowserTargets(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
680
- openBrowserTarget(workspaceId: string, browserSessionId: string, request?: BrowserOpenTargetRequest, options?: OpenGeniRequestOptions): Promise<BrowserTarget>;
681
- selectBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTarget>;
1139
+ openBrowserTarget(workspaceId: string, browserSessionId: string, request?: BrowserOpenTargetRequest, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
1140
+ selectBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
682
1141
  closeBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
683
1142
  observeBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
684
1143
  actInBrowser(workspaceId: string, browserSessionId: string, request: BrowserActionRequest, options?: OpenGeniRequestOptions): Promise<BrowserActionReceipt>;
@@ -692,6 +1151,7 @@ export interface InteractionTransport {
692
1151
  endBrowserSession(workspaceId: string, browserSessionId: string, request: BrowserSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
693
1152
  listComputerSessions(workspaceId: string, options?: OpenGeniRequestOptions): Promise<ComputerSessionListResponse>;
694
1153
  getComputerSession(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerSession>;
1154
+ readComputerClipboard(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerClipboard>;
695
1155
  createComputerSession(workspaceId: string, request: CreateComputerSessionRequest, options?: OpenGeniRequestOptions): Promise<ComputerSessionMutationResponse>;
696
1156
  listComputerTargets(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerTargetListResponse>;
697
1157
  observeComputerTarget(workspaceId: string, computerSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<ComputerObservation>;
@@ -706,9 +1166,29 @@ export type BrowserInteractionTransport = InteractionTransport;
706
1166
  export type BrowserIdentityListOptions = OpenGeniRequestOptions & {
707
1167
  includeArchived?: boolean | undefined;
708
1168
  };
1169
+ export type NetworkRouteListOptions = OpenGeniRequestOptions & {
1170
+ includeArchived?: boolean | undefined;
1171
+ };
1172
+ export type SiteAuthConnectionListOptions = OpenGeniRequestOptions & {
1173
+ includeArchived?: boolean | undefined;
1174
+ };
1175
+ export type AuthRunListOptions = OpenGeniRequestOptions & {
1176
+ browserSessionId?: string | undefined;
1177
+ siteAuthConnectionId?: string | undefined;
1178
+ includeSettled?: boolean | undefined;
1179
+ };
1180
+ export type InteractionInterventionListOptions = OpenGeniRequestOptions & {
1181
+ resourceKind?: "browser_session" | "computer_session" | undefined;
1182
+ resourceId?: string | undefined;
1183
+ includeSettled?: boolean | undefined;
1184
+ };
709
1185
  export type AttachedBrowserDeviceListOptions = OpenGeniRequestOptions & {
710
1186
  includeDisconnected?: boolean | undefined;
711
1187
  };
1188
+ export type BrowserDownloadSaveOptions = OpenGeniRequestOptions & {
1189
+ operationId?: string | undefined;
1190
+ overwrite?: boolean | undefined;
1191
+ };
712
1192
  export type CurrentOrOpenBrowserOptions = {
713
1193
  workspaceId: string;
714
1194
  associationSessionId: string;
@@ -719,6 +1199,7 @@ export type CurrentOrOpenBrowserOptions = {
719
1199
  placement?: InteractionPlacement | undefined;
720
1200
  identityId?: string | undefined;
721
1201
  baseRevisionId?: string | undefined;
1202
+ networkRouteId?: string | undefined;
722
1203
  linkedComputerSessionId?: string | undefined;
723
1204
  signal?: AbortSignal | undefined;
724
1205
  };
@@ -733,10 +1214,89 @@ export type CurrentOrOpenComputerOptions = {
733
1214
  /** Framework-free resource facade over the public interaction HTTP API. */
734
1215
  export declare class OpenGeniInteractionClient {
735
1216
  readonly attachedBrowsers: AttachedBrowserDeviceCollection;
1217
+ readonly authRuns: AuthRunCollection;
736
1218
  readonly browsers: BrowserSessionCollection;
737
1219
  readonly computers: ComputerSessionCollection;
738
1220
  readonly identities: BrowserIdentityCollection;
1221
+ readonly interventions: InteractionInterventionCollection;
1222
+ readonly networkRoutes: NetworkRouteCollection;
1223
+ readonly siteAuthConnections: SiteAuthConnectionCollection;
1224
+ constructor(transport: BrowserInteractionTransport);
1225
+ }
1226
+ export declare class NetworkRouteCollection {
1227
+ private readonly transport;
1228
+ constructor(transport: BrowserInteractionTransport);
1229
+ list(workspaceId: string, options?: NetworkRouteListOptions): Promise<NetworkRouteListResponse>;
1230
+ route(workspaceId: string, networkRouteId: string): NetworkRouteResource;
1231
+ create(workspaceId: string, request: CreateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteResource>;
1232
+ }
1233
+ export declare class NetworkRouteResource {
1234
+ private readonly transport;
1235
+ readonly workspaceId: string;
1236
+ readonly id: string;
1237
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
1238
+ get(options?: OpenGeniRequestOptions): Promise<NetworkRoute>;
1239
+ update(request: UpdateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteMutationResponse>;
1240
+ }
1241
+ export declare class SiteAuthConnectionCollection {
1242
+ private readonly transport;
1243
+ constructor(transport: BrowserInteractionTransport);
1244
+ list(workspaceId: string, options?: SiteAuthConnectionListOptions): Promise<SiteAuthConnectionListResponse>;
1245
+ connection(workspaceId: string, connectionId: string): SiteAuthConnectionResource;
1246
+ create(workspaceId: string, request: CreateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionResource>;
1247
+ }
1248
+ export declare class SiteAuthConnectionResource {
1249
+ private readonly transport;
1250
+ readonly workspaceId: string;
1251
+ readonly id: string;
1252
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
1253
+ get(options?: OpenGeniRequestOptions): Promise<SiteAuthConnection>;
1254
+ update(request: UpdateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionMutationResponse>;
1255
+ }
1256
+ export declare class AuthRunCollection {
1257
+ private readonly transport;
1258
+ constructor(transport: BrowserInteractionTransport);
1259
+ list(workspaceId: string, options?: AuthRunListOptions): Promise<AuthRunListResponse>;
1260
+ get(workspaceId: string, authRunId: string, options?: OpenGeniRequestOptions): Promise<AuthRun>;
1261
+ run(workspaceId: string, browserSessionId: string, authRunId: string): AuthRunResource;
1262
+ }
1263
+ export declare class BrowserAuthRunCollection {
1264
+ private readonly transport;
1265
+ readonly workspaceId: string;
1266
+ readonly browserSessionId: string;
1267
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
1268
+ list(options?: Omit<AuthRunListOptions, "browserSessionId">): Promise<AuthRunListResponse>;
1269
+ run(authRunId: string): AuthRunResource;
1270
+ start(request: StartAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunResource>;
1271
+ }
1272
+ export declare class AuthRunResource {
1273
+ private readonly transport;
1274
+ readonly workspaceId: string;
1275
+ readonly browserSessionId: string;
1276
+ readonly id: string;
1277
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string, id: string);
1278
+ get(options?: OpenGeniRequestOptions): Promise<AuthRun>;
1279
+ report(request: ReportAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1280
+ protectedFill(request: ProtectedAuthFillRequest, options?: OpenGeniRequestOptions): Promise<ProtectedAuthFillResponse>;
1281
+ advanceExternal(request: ExternalAuthRunRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthRunResponse>;
1282
+ /** Human-session helper. Hosted provider URLs never appear in model tools. */
1283
+ openExternalFlow(request: ExternalAuthInteractiveRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthInteractiveResponse>;
1284
+ verify(request: VerifyAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1285
+ }
1286
+ export declare class InteractionInterventionCollection {
1287
+ private readonly transport;
739
1288
  constructor(transport: BrowserInteractionTransport);
1289
+ list(workspaceId: string, options?: InteractionInterventionListOptions): Promise<InteractionInterventionListResponse>;
1290
+ intervention(workspaceId: string, interventionId: string): InteractionInterventionResource;
1291
+ create(workspaceId: string, request: CreateInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionResource>;
1292
+ }
1293
+ export declare class InteractionInterventionResource {
1294
+ private readonly transport;
1295
+ readonly workspaceId: string;
1296
+ readonly id: string;
1297
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
1298
+ get(options?: OpenGeniRequestOptions): Promise<InteractionIntervention>;
1299
+ resolve(request: ResolveInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionMutationResponse>;
740
1300
  }
741
1301
  export declare class AttachedBrowserDeviceCollection {
742
1302
  private readonly transport;
@@ -765,6 +1325,7 @@ export declare class BrowserIdentityResource {
765
1325
  constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
766
1326
  get(options?: OpenGeniRequestOptions): Promise<BrowserIdentity>;
767
1327
  revisions(options?: OpenGeniRequestOptions): Promise<BrowserRevisionListResponse>;
1328
+ update(request: UpdateBrowserIdentityRequest, options?: OpenGeniRequestOptions): Promise<BrowserIdentityMutationResponse>;
768
1329
  }
769
1330
  export declare class BrowserSessionCollection {
770
1331
  private readonly transport;
@@ -778,6 +1339,9 @@ export declare class BrowserSessionResource {
778
1339
  private readonly transport;
779
1340
  readonly workspaceId: string;
780
1341
  readonly id: string;
1342
+ readonly auth: BrowserAuthRunCollection;
1343
+ readonly clipboard: BrowserClipboardResource;
1344
+ readonly downloads: BrowserDownloadCollection;
781
1345
  readonly tabs: BrowserTargetCollection;
782
1346
  /** Alias for hosts that prefer the protocol term. */
783
1347
  readonly targets: BrowserTargetCollection;
@@ -794,14 +1358,41 @@ export declare class BrowserSessionResource {
794
1358
  resume(request?: BrowserSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
795
1359
  end(request?: BrowserSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
796
1360
  }
1361
+ export declare class BrowserClipboardResource {
1362
+ private readonly transport;
1363
+ readonly workspaceId: string;
1364
+ readonly browserSessionId: string;
1365
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
1366
+ read(options?: OpenGeniRequestOptions): Promise<BrowserClipboard>;
1367
+ }
1368
+ export declare class BrowserDownloadCollection {
1369
+ private readonly transport;
1370
+ readonly workspaceId: string;
1371
+ readonly browserSessionId: string;
1372
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
1373
+ list(options?: OpenGeniRequestOptions): Promise<BrowserDownloadListResponse>;
1374
+ download(downloadId: string): BrowserDownloadResource;
1375
+ }
1376
+ export declare class BrowserDownloadResource {
1377
+ private readonly transport;
1378
+ readonly workspaceId: string;
1379
+ readonly browserSessionId: string;
1380
+ readonly id: string;
1381
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string, id: string);
1382
+ get(options?: OpenGeniRequestOptions): Promise<BrowserDownload>;
1383
+ /** Publish this exact private browser download into the source session's
1384
+ * workspace. Pass an operationId when the caller needs retry identity across
1385
+ * process boundaries; otherwise one is generated for this call. */
1386
+ saveToWorkspace(destinationPath: string, options?: BrowserDownloadSaveOptions): Promise<BrowserDownloadSaveResponse>;
1387
+ }
797
1388
  export declare class BrowserTargetCollection {
798
1389
  private readonly transport;
799
1390
  private readonly workspaceId;
800
1391
  private readonly browserSessionId;
801
1392
  constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
802
1393
  list(options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
803
- open(url?: string, options?: OpenGeniRequestOptions): Promise<BrowserTarget>;
804
- select(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTarget>;
1394
+ open(url?: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
1395
+ select(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
805
1396
  close(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
806
1397
  }
807
1398
  export declare class ComputerSessionCollection {
@@ -819,6 +1410,7 @@ export declare class ComputerSessionResource {
819
1410
  readonly targets: ComputerTargetCollection;
820
1411
  /** Native application/window targets are also the public app collection. */
821
1412
  readonly apps: ComputerTargetCollection;
1413
+ readonly clipboard: ComputerClipboardResource;
822
1414
  constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
823
1415
  get(options?: OpenGeniRequestOptions): Promise<ComputerSession>;
824
1416
  observe(targetId: string, options?: OpenGeniRequestOptions): Promise<ComputerObservation>;
@@ -828,6 +1420,13 @@ export declare class ComputerSessionResource {
828
1420
  heartbeat(options?: OpenGeniRequestOptions): Promise<ComputerSessionHeartbeatResponse>;
829
1421
  end(request?: ComputerSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<ComputerSessionMutationResponse>;
830
1422
  }
1423
+ export declare class ComputerClipboardResource {
1424
+ private readonly transport;
1425
+ readonly workspaceId: string;
1426
+ readonly computerSessionId: string;
1427
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, computerSessionId: string);
1428
+ read(options?: OpenGeniRequestOptions): Promise<ComputerClipboard>;
1429
+ }
831
1430
  export declare class ComputerTargetCollection {
832
1431
  private readonly transport;
833
1432
  private readonly workspaceId;