@opengeni/sdk 0.52.1 → 1.0.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 (300) hide show
  1. package/README.md +1078 -33
  2. package/dist/accounts.d.ts +153 -0
  3. package/dist/accounts.js +307 -0
  4. package/dist/accounts.js.map +1 -0
  5. package/dist/adapters/express.d.ts +31 -0
  6. package/dist/adapters/express.js +87 -0
  7. package/dist/adapters/express.js.map +1 -0
  8. package/dist/adapters/hono.d.ts +16 -0
  9. package/dist/adapters/hono.js +8 -0
  10. package/dist/adapters/hono.js.map +1 -0
  11. package/dist/adapters/next.d.ts +29 -0
  12. package/dist/adapters/next.js +22 -0
  13. package/dist/adapters/next.js.map +1 -0
  14. package/dist/allowance-refusal.d.ts +2 -0
  15. package/dist/allowance-refusal.js +50 -0
  16. package/dist/allowance-refusal.js.map +1 -0
  17. package/dist/artifact-catalog.d.ts +31 -0
  18. package/dist/artifact-client.d.ts +23 -11
  19. package/dist/artifacts.d.ts +1 -1
  20. package/dist/artifacts.js +7 -5
  21. package/dist/automations-client.d.ts +17 -0
  22. package/dist/automations.d.ts +3 -0
  23. package/dist/automations.js +84 -0
  24. package/dist/automations.js.map +1 -0
  25. package/dist/browser.d.ts +11 -0
  26. package/dist/browser.js +47 -0
  27. package/dist/browser.js.map +1 -0
  28. package/dist/chat/fold.d.ts +75 -0
  29. package/dist/chat/handler.d.ts +41 -0
  30. package/dist/chat/http.d.ts +67 -0
  31. package/dist/chat/ids.d.ts +34 -0
  32. package/dist/chat/index.d.ts +9 -0
  33. package/dist/chat/index.js +1694 -0
  34. package/dist/chat/index.js.map +1 -0
  35. package/dist/chat/openai.d.ts +30 -0
  36. package/dist/chat/opengeni.d.ts +128 -0
  37. package/dist/chat/types.d.ts +207 -0
  38. package/dist/chat/vercel.d.ts +49 -0
  39. package/dist/chats.d.ts +8 -0
  40. package/dist/{chunk-KIHGPM7H.js → chunk-2UXZUCEZ.js} +309 -46
  41. package/dist/chunk-2UXZUCEZ.js.map +1 -0
  42. package/dist/chunk-4SMEOV3P.js +246 -0
  43. package/dist/chunk-4SMEOV3P.js.map +1 -0
  44. package/dist/{chunk-FHI4DFIG.js → chunk-AH5D5Q5V.js} +31 -35
  45. package/dist/chunk-AH5D5Q5V.js.map +1 -0
  46. package/dist/chunk-APXVSSSY.js +301 -0
  47. package/dist/chunk-APXVSSSY.js.map +1 -0
  48. package/dist/chunk-DUVIYER4.js +639 -0
  49. package/dist/chunk-DUVIYER4.js.map +1 -0
  50. package/dist/{chunk-ILQZR5N6.js → chunk-FG3OO5LM.js} +3484 -750
  51. package/dist/chunk-FG3OO5LM.js.map +1 -0
  52. package/dist/chunk-GZYZT22T.js +260 -0
  53. package/dist/chunk-GZYZT22T.js.map +1 -0
  54. package/dist/chunk-HMGADJGZ.js +150 -0
  55. package/dist/chunk-HMGADJGZ.js.map +1 -0
  56. package/dist/{chunk-DXDL7EEW.js → chunk-KWADQ227.js} +198 -114
  57. package/dist/chunk-KWADQ227.js.map +1 -0
  58. package/dist/chunk-LY2K6ELJ.js +126 -0
  59. package/dist/chunk-LY2K6ELJ.js.map +1 -0
  60. package/dist/chunk-MOTJYIYL.js +340 -0
  61. package/dist/chunk-MOTJYIYL.js.map +1 -0
  62. package/dist/{chunk-MZWTWOX6.js → chunk-NC57YMUO.js} +447 -3
  63. package/dist/chunk-NC57YMUO.js.map +1 -0
  64. package/dist/chunk-RWKB6YZG.js +1270 -0
  65. package/dist/chunk-RWKB6YZG.js.map +1 -0
  66. package/dist/chunk-U6CV2SXO.js +195 -0
  67. package/dist/chunk-U6CV2SXO.js.map +1 -0
  68. package/dist/chunk-UM4ZXXJR.js +9 -0
  69. package/dist/chunk-UM4ZXXJR.js.map +1 -0
  70. package/dist/chunk-V6GIY62B.js +229 -0
  71. package/dist/chunk-V6GIY62B.js.map +1 -0
  72. package/dist/chunk-WU6GQG25.js +268 -0
  73. package/dist/chunk-WU6GQG25.js.map +1 -0
  74. package/dist/{chunk-VWE2QIVO.js → chunk-XNG7YGR3.js} +23 -6
  75. package/dist/chunk-XNG7YGR3.js.map +1 -0
  76. package/dist/{chunk-FRJFNDIR.js → chunk-YIKA2QT4.js} +37 -2
  77. package/dist/chunk-YIKA2QT4.js.map +1 -0
  78. package/dist/chunk-ZKPY6YAJ.js +135 -0
  79. package/dist/chunk-ZKPY6YAJ.js.map +1 -0
  80. package/dist/client.d.ts +843 -107
  81. package/dist/codex-realtime-controller.d.ts +6 -0
  82. package/dist/codex-realtime-controller.js +2 -2
  83. package/dist/codex-realtime-v3.d.ts +13 -2
  84. package/dist/company-brain.d.ts +22 -0
  85. package/dist/company-profile.d.ts +14 -1
  86. package/dist/core.d.ts +9 -3
  87. package/dist/core.js +28 -9
  88. package/dist/deprecation.d.ts +47 -0
  89. package/dist/desktop.d.ts +8 -0
  90. package/dist/document-authority-client.d.ts +51 -0
  91. package/dist/document-authority.d.ts +2 -0
  92. package/dist/document-authority.js +12 -0
  93. package/dist/document-authority.js.map +1 -0
  94. package/dist/editable-artifacts/browser-session.d.ts +7 -3
  95. package/dist/editable-artifacts/controller.d.ts +4 -1
  96. package/dist/editable-artifacts/errors.d.ts +1 -1
  97. package/dist/editable-artifacts/http-live-transport.d.ts +6 -2
  98. package/dist/editable-artifacts/index.d.ts +2 -0
  99. package/dist/editable-artifacts/open-failure.d.ts +9 -0
  100. package/dist/editable-artifacts/types.d.ts +6 -3
  101. package/dist/editable-artifacts/worker/kernel-adapter.d.ts +1 -1
  102. package/dist/editable-artifacts-worker.js +44 -17
  103. package/dist/editable-artifacts-worker.js.map +1 -1
  104. package/dist/editable-artifacts.js +243 -124
  105. package/dist/editable-artifacts.js.map +1 -1
  106. package/dist/embedding-client.d.ts +129 -0
  107. package/dist/errors.d.ts +36 -1
  108. package/dist/feedback.d.ts +23 -0
  109. package/dist/gateway-realtime-transport.d.ts +1 -0
  110. package/dist/gateway-realtime-transport.js +5 -3
  111. package/dist/github-repositories.d.ts +10 -0
  112. package/dist/github-repositories.js +36 -0
  113. package/dist/github-repositories.js.map +1 -0
  114. package/dist/index.d.ts +61 -12
  115. package/dist/index.js +277 -126
  116. package/dist/index.js.map +1 -1
  117. package/dist/interaction-revision-stream.d.ts +11 -0
  118. package/dist/interaction.d.ts +687 -5
  119. package/dist/interaction.js +32 -1
  120. package/dist/knowledge.d.ts +7 -0
  121. package/dist/knowledge.js +20 -0
  122. package/dist/knowledge.js.map +1 -0
  123. package/dist/message-links.d.ts +68 -0
  124. package/dist/model-context.d.ts +68 -0
  125. package/dist/model-display.d.ts +2 -0
  126. package/dist/model-display.js +15 -0
  127. package/dist/model-display.js.map +1 -0
  128. package/dist/model-picker-order.d.ts +1 -0
  129. package/dist/model-picker-order.js +10 -0
  130. package/dist/model-picker-order.js.map +1 -0
  131. package/dist/organization-integration-policy.d.ts +26 -0
  132. package/dist/organization-integration-policy.js +26 -0
  133. package/dist/organization-integration-policy.js.map +1 -0
  134. package/dist/organization-private-session-settings.d.ts +6 -0
  135. package/dist/organization-private-session-settings.js +22 -0
  136. package/dist/organization-private-session-settings.js.map +1 -0
  137. package/dist/organization-user-setup.d.ts +8 -0
  138. package/dist/organization-user-setup.js +16 -0
  139. package/dist/organization-user-setup.js.map +1 -0
  140. package/dist/pr-review-client.d.ts +16 -0
  141. package/dist/pr-review.d.ts +4 -0
  142. package/dist/pr-review.js +62 -0
  143. package/dist/pr-review.js.map +1 -0
  144. package/dist/preference-registry.d.ts +9 -1
  145. package/dist/proxy.d.ts +7 -5
  146. package/dist/realtime.d.ts +6 -4
  147. package/dist/realtime.js +10 -6
  148. package/dist/realtime.js.map +1 -1
  149. package/dist/retained-artifacts.d.ts +5 -1
  150. package/dist/session-history-import.d.ts +22 -0
  151. package/dist/session-history-import.js +36 -0
  152. package/dist/session-history-import.js.map +1 -0
  153. package/dist/session-list-entries.d.ts +1 -0
  154. package/dist/session-list-entries.js +7 -0
  155. package/dist/session-list-entries.js.map +1 -0
  156. package/dist/session-message-search.d.ts +53 -0
  157. package/dist/session-proxy-client.d.ts +24 -0
  158. package/dist/session-proxy.d.ts +245 -0
  159. package/dist/session-proxy.js +24 -0
  160. package/dist/session-proxy.js.map +1 -0
  161. package/dist/session-titles.d.ts +2 -0
  162. package/dist/site-browser-entry.d.ts +1 -0
  163. package/dist/site-browser-runtime.gen.d.ts +1 -0
  164. package/dist/site-document.d.ts +5 -0
  165. package/dist/site-document.js +20 -0
  166. package/dist/site-document.js.map +1 -0
  167. package/dist/site-document.test.d.ts +1 -0
  168. package/dist/site-http.d.ts +16 -0
  169. package/dist/site-tool-bridge.d.ts +44 -0
  170. package/dist/site.d.ts +101 -0
  171. package/dist/site.js +49 -0
  172. package/dist/site.js.map +1 -0
  173. package/dist/skills.d.ts +75 -0
  174. package/dist/stream.d.ts +2 -0
  175. package/dist/tenant-workspaces.d.ts +47 -0
  176. package/dist/tenant-workspaces.js +8 -0
  177. package/dist/tenant-workspaces.js.map +1 -0
  178. package/dist/tool-auth.d.ts +87 -0
  179. package/dist/tool-auth.js +23 -0
  180. package/dist/tool-auth.js.map +1 -0
  181. package/dist/tool-display-metadata.d.ts +3 -0
  182. package/dist/tools-FXBLUWAE.js +12 -0
  183. package/dist/tools-FXBLUWAE.js.map +1 -0
  184. package/dist/tools.d.ts +61 -0
  185. package/dist/types.d.ts +3048 -406
  186. package/dist/usage-allowances.d.ts +36 -0
  187. package/dist/usage-allowances.js +80 -0
  188. package/dist/usage-allowances.js.map +1 -0
  189. package/dist/workspace-artifacts.d.ts +33 -5
  190. package/dist/workspace-instruction-policies.d.ts +24 -2
  191. package/dist/workspace-integrations.d.ts +74 -0
  192. package/dist/workspace-integrations.js +65 -0
  193. package/dist/workspace-integrations.js.map +1 -0
  194. package/dist/workspace-learning.d.ts +124 -0
  195. package/dist/workspace-live-stream.d.ts +14 -0
  196. package/dist/workspace-state.d.ts +8 -71
  197. package/package.json +108 -3
  198. package/src/accounts.ts +443 -0
  199. package/src/adapters/express.ts +136 -0
  200. package/src/adapters/hono.ts +18 -0
  201. package/src/adapters/next.ts +42 -0
  202. package/src/allowance-refusal.ts +5 -0
  203. package/src/artifact-catalog.ts +41 -0
  204. package/src/artifact-client.ts +43 -52
  205. package/src/artifacts.ts +7 -1
  206. package/src/automations-client.ts +124 -0
  207. package/src/automations.ts +15 -0
  208. package/src/browser.ts +54 -0
  209. package/src/chat/fold.ts +431 -0
  210. package/src/chat/handler.ts +240 -0
  211. package/src/chat/http.ts +257 -0
  212. package/src/chat/ids.ts +85 -0
  213. package/src/chat/index.ts +87 -0
  214. package/src/chat/openai.ts +439 -0
  215. package/src/chat/opengeni.ts +722 -0
  216. package/src/chat/types.ts +219 -0
  217. package/src/chat/vercel.ts +204 -0
  218. package/src/chats.ts +16 -0
  219. package/src/client.ts +5162 -792
  220. package/src/codex-realtime-controller.ts +260 -12
  221. package/src/codex-realtime-lifecycle.ts +1 -0
  222. package/src/codex-realtime-v3.ts +162 -31
  223. package/src/codex-realtime.ts +1 -1
  224. package/src/company-brain.ts +59 -0
  225. package/src/company-profile.ts +17 -1
  226. package/src/core.ts +23 -1
  227. package/src/deprecation.ts +149 -0
  228. package/src/desktop.ts +11 -1
  229. package/src/document-authority-client.ts +219 -0
  230. package/src/document-authority.ts +17 -0
  231. package/src/editable-artifacts/browser-session.ts +36 -22
  232. package/src/editable-artifacts/controller.ts +102 -47
  233. package/src/editable-artifacts/errors.ts +2 -0
  234. package/src/editable-artifacts/http-live-transport.ts +62 -37
  235. package/src/editable-artifacts/index.ts +6 -0
  236. package/src/editable-artifacts/open-failure.ts +79 -0
  237. package/src/editable-artifacts/storage.ts +31 -40
  238. package/src/editable-artifacts/types.ts +6 -3
  239. package/src/editable-artifacts/worker/kernel-adapter.ts +23 -7
  240. package/src/editable-artifacts/worker/runtime.ts +26 -13
  241. package/src/editable-artifacts/worker/wire-codec.ts +23 -5
  242. package/src/embedding-client.ts +519 -0
  243. package/src/errors.ts +185 -4
  244. package/src/feedback.ts +20 -0
  245. package/src/gateway-realtime-transport.ts +253 -110
  246. package/src/github-repositories.ts +60 -0
  247. package/src/index.ts +603 -54
  248. package/src/interaction-revision-stream.ts +117 -0
  249. package/src/interaction.ts +1367 -51
  250. package/src/knowledge.ts +72 -0
  251. package/src/message-links.ts +178 -0
  252. package/src/model-context.ts +112 -0
  253. package/src/model-display.ts +10 -0
  254. package/src/model-picker-order.ts +6 -0
  255. package/src/organization-integration-policy.ts +54 -0
  256. package/src/organization-private-session-settings.ts +33 -0
  257. package/src/organization-user-setup.ts +31 -0
  258. package/src/pr-review-client.ts +92 -0
  259. package/src/pr-review.ts +17 -0
  260. package/src/preference-registry.ts +11 -0
  261. package/src/proxy.ts +17 -6
  262. package/src/realtime.ts +15 -4
  263. package/src/retained-artifacts.ts +101 -0
  264. package/src/session-history-import.ts +84 -0
  265. package/src/session-list-entries.ts +1 -0
  266. package/src/session-message-search.ts +47 -0
  267. package/src/session-proxy-client.ts +64 -0
  268. package/src/session-proxy.ts +1473 -0
  269. package/src/session-titles.ts +10 -0
  270. package/src/site-browser-entry.ts +6 -0
  271. package/src/site-browser-runtime.gen.ts +2 -0
  272. package/src/site-document.test.ts +64 -0
  273. package/src/site-document.ts +18 -0
  274. package/src/site-http.ts +162 -0
  275. package/src/site-tool-bridge.ts +146 -0
  276. package/src/site.ts +585 -0
  277. package/src/skills.ts +69 -0
  278. package/src/sse.ts +8 -2
  279. package/src/stream.ts +38 -4
  280. package/src/tenant-workspaces.ts +148 -0
  281. package/src/tool-auth.ts +301 -0
  282. package/src/tool-display-metadata.ts +19 -0
  283. package/src/tools.ts +396 -0
  284. package/src/types.ts +3607 -493
  285. package/src/usage-allowances.ts +189 -0
  286. package/src/workspace-artifacts.ts +40 -6
  287. package/src/workspace-instruction-policies.ts +26 -1
  288. package/src/workspace-integrations.ts +402 -0
  289. package/src/workspace-learning.ts +138 -0
  290. package/src/workspace-live-stream.ts +137 -0
  291. package/src/workspace-state.ts +8 -82
  292. package/dist/chunk-DXDL7EEW.js.map +0 -1
  293. package/dist/chunk-FHI4DFIG.js.map +0 -1
  294. package/dist/chunk-FRJFNDIR.js.map +0 -1
  295. package/dist/chunk-ILQZR5N6.js.map +0 -1
  296. package/dist/chunk-KIHGPM7H.js.map +0 -1
  297. package/dist/chunk-MZWTWOX6.js.map +0 -1
  298. package/dist/chunk-V5F253OG.js +0 -116
  299. package/dist/chunk-V5F253OG.js.map +0 -1
  300. package/dist/chunk-VWE2QIVO.js.map +0 -1
@@ -1,4 +1,6 @@
1
1
  import type { OpenGeniRequestOptions } from "./client.js";
2
+ import type { BrowserDomReadRequest, BrowserDomReadResponse, BrowserTargetState } from "@opengeni/contracts";
3
+ export type { BrowserDomReadRequest, BrowserDomReadResponse, BrowserDomSafeAttribute, BrowserTargetState, } from "@opengeni/contracts";
2
4
  import type { RetainedArtifactReference } from "./types.js";
3
5
  /** Public Browser/Computer protocol version. Driver and provider details stay private. */
4
6
  export declare const INTERACTION_PROTOCOL_VERSION: 1;
@@ -9,9 +11,31 @@ export declare const BROWSER_CONTROL_MAX_FRAME_HEADER_BYTES: number;
9
11
  export declare const BROWSER_FRAME_MAX_BYTES: number;
10
12
  export declare const BROWSER_FRAME_MAX_DIMENSION = 32768;
11
13
  export declare const BROWSER_FRAME_MAX_PIXELS = 100000000;
14
+ /** Latest-wins invalidation cursor for workspace Browser/Computer resources. */
15
+ export type WorkspaceInteractionRevisionEvent = {
16
+ workspaceId: string;
17
+ sequence: number;
18
+ revision: number;
19
+ type: "workspace.interaction.changed";
20
+ occurredAt: string;
21
+ };
12
22
  export type InteractionJsonValue = null | string | number | boolean | InteractionJsonValue[] | {
13
23
  [key: string]: InteractionJsonValue;
14
24
  };
25
+ export type InteractionControlFailureCode = "unknown" | "unsupported" | "os" | "not_found" | "consent_required" | "timeout" | "draining" | "protocol" | "stream" | "agent_offline" | "fenced" | "payload_too_large";
26
+ export type InteractionControlFailure = {
27
+ layer: "connected_machine";
28
+ surface: "browser" | "computer";
29
+ code: InteractionControlFailureCode;
30
+ retryable: boolean;
31
+ outcomeUnknown: boolean;
32
+ requestId: string | undefined;
33
+ controlRequestId: string | undefined;
34
+ message: string;
35
+ };
36
+ /** Decodes the bounded typed control-failure details emitted by OpenGeni. Raw
37
+ * provider/OS detail is intentionally absent; both correlation ids are opaque. */
38
+ export declare function interactionControlFailureFromError(error: unknown): InteractionControlFailure | null;
15
39
  export type InteractionPlacement = {
16
40
  kind: "sandbox_group";
17
41
  sandboxGroupId: string;
@@ -61,8 +85,17 @@ export type AttachedBrowserDevice = {
61
85
  createdAt: string;
62
86
  updatedAt: string;
63
87
  };
88
+ export type AttachedBrowserBridge = {
89
+ enrollmentId: string;
90
+ state: "online" | "offline";
91
+ bridgeGeneration: string;
92
+ inventoryRevision: number;
93
+ connectedProfileCount: number;
94
+ lastSeenAt: string;
95
+ };
64
96
  export type AttachedBrowserDeviceListResponse = {
65
97
  revision: number;
98
+ bridges: AttachedBrowserBridge[];
66
99
  devices: AttachedBrowserDevice[];
67
100
  };
68
101
  export type InteractionControllerBinding = {
@@ -88,6 +121,7 @@ export type BrowserSessionCapabilities = {
88
121
  downloads: boolean;
89
122
  uploads: boolean;
90
123
  clipboard: boolean;
124
+ permissions: boolean;
91
125
  diagnostics: boolean;
92
126
  rawCdp: boolean;
93
127
  linkedComputer: boolean;
@@ -118,6 +152,355 @@ export type BrowserSession = {
118
152
  lastUsedAt: string;
119
153
  failureCode: string | null;
120
154
  };
155
+ export type BrowserClipboard = {
156
+ browserSessionId: string;
157
+ controllerGeneration: string;
158
+ revision: number;
159
+ text: string;
160
+ source: "empty" | "write" | "clear" | "copy" | "paste";
161
+ sourceTargetId: string | null;
162
+ updatedAt: string | null;
163
+ };
164
+ export type InteractionCredentialAuthorityRef = {
165
+ connectionId: string;
166
+ connectionSubjectId: string | null;
167
+ providerDomain: string;
168
+ };
169
+ export type NetworkRouteConfiguration = {
170
+ kind: "direct";
171
+ } | {
172
+ kind: "proxy";
173
+ protocol: "http" | "https" | "socks5";
174
+ host: string;
175
+ port: number;
176
+ credential: InteractionCredentialAuthorityRef | null;
177
+ } | {
178
+ kind: "managed";
179
+ providerId: string;
180
+ routeId: string;
181
+ egressClass: "datacenter" | "residential" | "isp";
182
+ region: string | null;
183
+ credential: InteractionCredentialAuthorityRef | null;
184
+ } | {
185
+ kind: "tunnel";
186
+ placement: InteractionPlacement;
187
+ tunnelId: string;
188
+ };
189
+ export type NetworkRouteConsistency = {
190
+ dns: "placement" | "proxy" | "provider";
191
+ expectedPublicIp: string | null;
192
+ expectedRegion: string | null;
193
+ locale: string | null;
194
+ timezone: string | null;
195
+ geolocation: {
196
+ latitude: number;
197
+ longitude: number;
198
+ accuracyMeters: number;
199
+ } | null;
200
+ webRtc: "default" | "disable_non_proxied_udp" | "proxy_only";
201
+ stability: "session" | "sticky" | "persistent";
202
+ };
203
+ export type NetworkRoute = {
204
+ id: string;
205
+ accountId: string;
206
+ workspaceId: string;
207
+ name: string;
208
+ status: "active" | "archived";
209
+ configuration: NetworkRouteConfiguration;
210
+ consistency: NetworkRouteConsistency;
211
+ version: number;
212
+ createdBySubjectId: string;
213
+ createdAt: string;
214
+ updatedAt: string;
215
+ };
216
+ export type NetworkRouteListResponse = {
217
+ revision: number;
218
+ routes: NetworkRoute[];
219
+ };
220
+ export type CreateNetworkRouteRequest = {
221
+ operationId: string;
222
+ name: string;
223
+ configuration: NetworkRouteConfiguration;
224
+ consistency: NetworkRouteConsistency;
225
+ };
226
+ export type UpdateNetworkRouteRequest = {
227
+ operationId: string;
228
+ expectedVersion: number;
229
+ name?: string | undefined;
230
+ status?: "active" | "archived" | undefined;
231
+ configuration?: NetworkRouteConfiguration | undefined;
232
+ consistency?: NetworkRouteConsistency | undefined;
233
+ };
234
+ export type NetworkRouteMutationResponse = {
235
+ route: NetworkRoute;
236
+ operationId: string;
237
+ replayed: boolean;
238
+ };
239
+ export type SiteAuthFieldPurpose = "identifier" | "password" | "secret" | "totp";
240
+ export type SiteAuthAuthority = {
241
+ id: string;
242
+ kind: "connection_fields";
243
+ label: string;
244
+ credential: InteractionCredentialAuthorityRef;
245
+ fields: Array<{
246
+ id: string;
247
+ purpose: SiteAuthFieldPurpose;
248
+ credentialKey: string;
249
+ digits?: number | undefined;
250
+ periodSeconds?: number | undefined;
251
+ algorithm?: "sha1" | "sha256" | "sha512" | undefined;
252
+ }>;
253
+ } | {
254
+ id: string;
255
+ kind: "human";
256
+ label: string;
257
+ fields: Array<{
258
+ id: string;
259
+ purpose: SiteAuthFieldPurpose;
260
+ }>;
261
+ } | {
262
+ id: string;
263
+ kind: "external_provider";
264
+ label: string;
265
+ adapterId: string;
266
+ connectionId: string;
267
+ credential: InteractionCredentialAuthorityRef | null;
268
+ };
269
+ export type SiteAuthMethod = {
270
+ id: string;
271
+ kind: "password" | "sso" | "magic_link" | "passkey" | "external";
272
+ label: string;
273
+ authorityIds: string[];
274
+ };
275
+ export type SiteAuthHealthPolicy = {
276
+ mode: "on_use" | "maintained";
277
+ intervalSeconds: number | null;
278
+ automaticRepair: boolean;
279
+ };
280
+ export type SiteAuthConnectionConfiguration = {
281
+ name: string;
282
+ accountLabel: string;
283
+ origins: string[];
284
+ loginUrl: string | null;
285
+ verificationUrlPrefixes: string[];
286
+ authorities: SiteAuthAuthority[];
287
+ methods: SiteAuthMethod[];
288
+ preferredIdentityId: string | null;
289
+ preferredPlacement: InteractionPlacement | null;
290
+ preferredNetworkRouteId: string | null;
291
+ healthPolicy: SiteAuthHealthPolicy;
292
+ };
293
+ export type SiteAuthConnection = SiteAuthConnectionConfiguration & {
294
+ id: string;
295
+ accountId: string;
296
+ workspaceId: string;
297
+ status: "active" | "archived";
298
+ verificationState: "unknown" | "verified" | "needs_repair" | "failed";
299
+ lastVerifiedAt: string | null;
300
+ lastVerifiedUrl: string | null;
301
+ lastCheckedAt: string | null;
302
+ nextCheckAt: string | null;
303
+ maintenance: {
304
+ action: "health_check" | "repair";
305
+ sessionId: string | null;
306
+ dueAt: string;
307
+ startedAt: string | null;
308
+ } | null;
309
+ repairCode: string | null;
310
+ version: number;
311
+ createdBySubjectId: string;
312
+ createdAt: string;
313
+ updatedAt: string;
314
+ };
315
+ export type SiteAuthConnectionListResponse = {
316
+ revision: number;
317
+ connections: SiteAuthConnection[];
318
+ };
319
+ export type CreateSiteAuthConnectionRequest = SiteAuthConnectionConfiguration & {
320
+ operationId: string;
321
+ };
322
+ export type UpdateSiteAuthConnectionRequest = Partial<SiteAuthConnectionConfiguration> & {
323
+ operationId: string;
324
+ expectedVersion: number;
325
+ status?: "active" | "archived" | undefined;
326
+ };
327
+ export type SiteAuthConnectionMutationResponse = {
328
+ connection: SiteAuthConnection;
329
+ operationId: string;
330
+ replayed: boolean;
331
+ };
332
+ export type AuthRun = {
333
+ id: string;
334
+ accountId: string;
335
+ workspaceId: string;
336
+ siteAuthConnectionId: string;
337
+ browserSessionId: string;
338
+ targetId: string;
339
+ controllerGeneration: string;
340
+ targetGeneration: string;
341
+ documentGeneration: string | null;
342
+ purpose: "authenticate" | "health_check" | "repair";
343
+ methodId: string | null;
344
+ authorityId: string | null;
345
+ state: "discovering" | "awaiting_choice" | "awaiting_secret" | "awaiting_external_action" | "working" | "verified" | "failed" | "cancelled";
346
+ choices: Array<{
347
+ id: string;
348
+ label: string;
349
+ methodId: string;
350
+ }>;
351
+ pendingFields: Array<{
352
+ id: string;
353
+ label: string;
354
+ purpose: SiteAuthFieldPurpose;
355
+ }>;
356
+ externalAction: {
357
+ kind: "push" | "security_key" | "passkey" | "device" | "human" | "other";
358
+ label: string;
359
+ expiresAt: string | null;
360
+ } | null;
361
+ interventionId: string | null;
362
+ verifiedUrl: string | null;
363
+ failureCode: string | null;
364
+ version: number;
365
+ operationId: string;
366
+ createdBySubjectId: string;
367
+ createdAt: string;
368
+ updatedAt: string;
369
+ settledAt: string | null;
370
+ };
371
+ export type AuthRunListResponse = {
372
+ runs: AuthRun[];
373
+ };
374
+ export type AuthRunMutationResponse = {
375
+ run: AuthRun;
376
+ operationId: string;
377
+ replayed: boolean;
378
+ };
379
+ export type StartAuthRunRequest = {
380
+ operationId: string;
381
+ siteAuthConnectionId: string;
382
+ targetId: string;
383
+ expectedTargetGeneration: string;
384
+ expectedDocumentGeneration: string | null;
385
+ purpose?: "authenticate" | "health_check" | "repair" | undefined;
386
+ methodId?: string | undefined;
387
+ authorityId?: string | undefined;
388
+ };
389
+ export type ReportAuthRunRequest = {
390
+ operationId: string;
391
+ expectedVersion: number;
392
+ methodId?: string | undefined;
393
+ authorityId?: string | undefined;
394
+ state: "awaiting_choice" | "awaiting_secret" | "awaiting_external_action" | "working" | "failed" | "cancelled";
395
+ choices?: AuthRun["choices"] | undefined;
396
+ pendingFields?: AuthRun["pendingFields"] | undefined;
397
+ externalAction?: AuthRun["externalAction"] | undefined;
398
+ failureCode?: string | null | undefined;
399
+ };
400
+ export type ProtectedAuthFillRequest = {
401
+ operationId: string;
402
+ expectedVersion: number;
403
+ expectedTargetGeneration: string;
404
+ expectedDocumentGeneration: string | null;
405
+ expectedFrameId: string | null;
406
+ authorityId: string;
407
+ fields: Array<{
408
+ fieldId: string;
409
+ locator: BrowserLocator;
410
+ }>;
411
+ submit: {
412
+ type: "none";
413
+ } | {
414
+ type: "click";
415
+ locator: BrowserLocator;
416
+ } | {
417
+ type: "press";
418
+ key: string;
419
+ locator?: BrowserLocator | undefined;
420
+ };
421
+ };
422
+ export type ProtectedAuthFillResponse = {
423
+ run: AuthRun;
424
+ status: "submitted" | "working" | "needs_human" | "stale" | "failed";
425
+ operationId: string;
426
+ replayed: boolean;
427
+ };
428
+ export type ExternalAuthRunRequest = {
429
+ operationId: string;
430
+ expectedVersion: number;
431
+ action: "start" | "poll";
432
+ };
433
+ export type ExternalAuthRunResponse = {
434
+ run: AuthRun;
435
+ status: "working" | "needs_human" | "ready_to_verify" | "failed";
436
+ operationId: string;
437
+ replayed: boolean;
438
+ };
439
+ export type ExternalAuthInteractiveRequest = {
440
+ operationId: string;
441
+ expectedVersion: number;
442
+ };
443
+ export type ExternalAuthInteractiveResponse = {
444
+ authRunId: string;
445
+ url: string;
446
+ expiresAt: string | null;
447
+ };
448
+ export type VerifyAuthRunRequest = {
449
+ operationId: string;
450
+ expectedVersion: number;
451
+ };
452
+ export type InteractionIntervention = {
453
+ id: string;
454
+ accountId: string;
455
+ workspaceId: string;
456
+ resourceKind: "browser_session" | "computer_session";
457
+ resourceId: string;
458
+ targetId: string;
459
+ controllerGeneration: string;
460
+ targetGeneration: string;
461
+ documentGeneration: string | null;
462
+ kind: "manual_login" | "mfa" | "external_action" | "confirmation" | "other";
463
+ reason: string;
464
+ status: "open" | "completed" | "dismissed" | "expired" | "cancelled";
465
+ authRunId: string | null;
466
+ originatingSessionId: string;
467
+ originatingTurnId: string | null;
468
+ originatingAttemptId: string | null;
469
+ originatingToolOperationId: string | null;
470
+ responseActorSubjectId: string | null;
471
+ version: number;
472
+ operationId: string;
473
+ expiresAt: string;
474
+ createdAt: string;
475
+ updatedAt: string;
476
+ settledAt: string | null;
477
+ };
478
+ export type InteractionInterventionListResponse = {
479
+ interventions: InteractionIntervention[];
480
+ };
481
+ export type CreateInteractionInterventionRequest = {
482
+ operationId: string;
483
+ resourceKind: "browser_session" | "computer_session";
484
+ resourceId: string;
485
+ targetId: string;
486
+ expectedControllerGeneration: string;
487
+ expectedTargetGeneration: string;
488
+ expectedDocumentGeneration: string | null;
489
+ kind: InteractionIntervention["kind"];
490
+ reason: string;
491
+ authRunId?: string | undefined;
492
+ expiresInSeconds?: number | undefined;
493
+ };
494
+ export type ResolveInteractionInterventionRequest = {
495
+ operationId: string;
496
+ expectedVersion: number;
497
+ outcome: "completed" | "dismissed";
498
+ };
499
+ export type InteractionInterventionMutationResponse = {
500
+ intervention: InteractionIntervention;
501
+ operationId: string;
502
+ replayed: boolean;
503
+ };
121
504
  export type BrowserIdentityStatus = "active" | "archived";
122
505
  export type BrowserRevisionComponentKind = "chromium_profile" | "normalized_web_state" | "provider_snapshot";
123
506
  export type BrowserRevisionPortability = "portable" | "provider_bound" | "placement_bound";
@@ -161,6 +544,7 @@ export type BrowserIdentity = {
161
544
  workspaceId: string;
162
545
  name: string;
163
546
  status: BrowserIdentityStatus;
547
+ version: number;
164
548
  defaultRevisionId: string | null;
165
549
  headGeneration: number;
166
550
  revisionCount: number;
@@ -180,6 +564,13 @@ export type CreateBrowserIdentityRequest = {
180
564
  operationId: string;
181
565
  name: string;
182
566
  };
567
+ export type UpdateBrowserIdentityRequest = {
568
+ operationId: string;
569
+ expectedVersion: number;
570
+ name?: string | undefined;
571
+ status?: BrowserIdentityStatus | undefined;
572
+ defaultRevisionId?: string | undefined;
573
+ };
183
574
  export type BrowserIdentityMutationResponse = {
184
575
  identity: BrowserIdentity;
185
576
  operationId: string;
@@ -210,6 +601,41 @@ export type BrowserTarget = {
210
601
  attached: boolean;
211
602
  createdAt: string;
212
603
  };
604
+ export type BrowserDownloadStatus = "in_progress" | "completed" | "cancelled" | "failed" | "unavailable";
605
+ /** One browser-produced file. Its bytes remain private to the exact browser
606
+ * controller until an explicit save publishes them into the workspace. */
607
+ export type BrowserDownload = {
608
+ id: string;
609
+ browserSessionId: string;
610
+ controllerGeneration: string;
611
+ targetId: string | null;
612
+ filename: string;
613
+ status: BrowserDownloadStatus;
614
+ receivedBytes: number;
615
+ totalBytes: number | null;
616
+ sha256: string | null;
617
+ version: number;
618
+ startedAt: string;
619
+ settledAt: string | null;
620
+ failureCode: string | null;
621
+ };
622
+ export type BrowserDownloadListResponse = {
623
+ browserSessionId: string;
624
+ controllerGeneration: string;
625
+ downloads: BrowserDownload[];
626
+ };
627
+ export type BrowserDownloadSaveRequest = {
628
+ operationId: string;
629
+ destinationPath: string;
630
+ overwrite?: boolean | undefined;
631
+ };
632
+ export type BrowserDownloadSaveResponse = {
633
+ download: BrowserDownload;
634
+ destinationPath: string;
635
+ fileId: string;
636
+ operationId: string;
637
+ replayed: boolean;
638
+ };
213
639
  export type InteractionRect = {
214
640
  x: number;
215
641
  y: number;
@@ -267,6 +693,14 @@ export type BrowserObservation = {
267
693
  frameId: string | null;
268
694
  semantic: InteractionSemanticSnapshot | InteractionSemanticDiff | null;
269
695
  screenshot: RetainedArtifactReference | null;
696
+ viewport?: {
697
+ width: number;
698
+ height: number;
699
+ visualWidth: number;
700
+ visualHeight: number;
701
+ deviceScaleFactor: number;
702
+ maxTouchPoints: number;
703
+ } | null | undefined;
270
704
  focusedRef: string | null;
271
705
  changedRegions: InteractionRect[];
272
706
  diagnostics: InteractionDiagnosticSummary;
@@ -318,9 +752,22 @@ export type BrowserLocator = {
318
752
  kind: "css";
319
753
  selector: string;
320
754
  };
755
+ export type BrowserPermission = "geolocation" | "notifications" | "camera" | "microphone" | "midi" | "midi_sysex" | "sensors" | "idle_detection" | "local_fonts" | "window_management";
756
+ export type BrowserPermissionSetting = "granted" | "denied" | "prompt";
321
757
  export type BrowserAction = {
322
758
  type: "navigate";
323
759
  url: string;
760
+ } | {
761
+ type: "history";
762
+ direction: "back" | "forward";
763
+ } | {
764
+ type: "activate";
765
+ } | {
766
+ type: "viewport";
767
+ width: number;
768
+ height: number;
769
+ mobile: boolean;
770
+ deviceScaleFactor?: number | undefined;
324
771
  } | {
325
772
  type: "click";
326
773
  locator: BrowserLocator;
@@ -370,6 +817,7 @@ export type BrowserAction = {
370
817
  deltaX?: number | undefined;
371
818
  deltaY?: number | undefined;
372
819
  button?: "left" | "right" | "middle" | undefined;
820
+ clickCount?: 1 | 2 | undefined;
373
821
  } | {
374
822
  type: "handle_dialog";
375
823
  response: "accept" | "dismiss";
@@ -378,6 +826,16 @@ export type BrowserAction = {
378
826
  type: "upload";
379
827
  locator: BrowserLocator;
380
828
  workspaceFileIds: string[];
829
+ } | {
830
+ type: "clipboard";
831
+ operation: "write" | "clear" | "copy" | "paste";
832
+ text?: string | undefined;
833
+ locator?: BrowserLocator | undefined;
834
+ content?: "selection" | "value" | "text" | undefined;
835
+ } | {
836
+ type: "permission";
837
+ permission: BrowserPermission;
838
+ setting: BrowserPermissionSetting;
381
839
  } | {
382
840
  type: "wait";
383
841
  condition: "load" | "network_idle" | "visible" | "hidden";
@@ -387,6 +845,7 @@ export type BrowserAction = {
387
845
  export type BrowserActionBatch = {
388
846
  type: "batch";
389
847
  actions: BrowserAction[];
848
+ fenceEachAction?: true | undefined;
390
849
  };
391
850
  export type InteractionError = {
392
851
  code: "resource_not_found" | "resource_unavailable" | "controller_stale" | "target_not_found" | "target_stale" | "observation_stale" | "document_stale" | "frame_stale" | "locator_not_found" | "locator_ambiguous" | "unsupported" | "permission_denied" | "machine_locked" | "attempt_stale" | "operation_conflict" | "outcome_unknown" | "invalid_action" | "timeout" | "controller_lost" | "driver_failed";
@@ -413,9 +872,12 @@ export type CreateBrowserSessionRequest = {
413
872
  name?: string | undefined;
414
873
  initialUrl?: string | undefined;
415
874
  headless?: boolean | undefined;
875
+ storageMode?: "private_profile" | "ephemeral_context" | undefined;
876
+ engine?: "chromium" | "lightpanda" | undefined;
416
877
  placement?: InteractionPlacement | undefined;
417
878
  identityId?: string | undefined;
418
879
  baseRevisionId?: string | undefined;
880
+ networkRouteId?: string | undefined;
419
881
  linkedComputerSessionId?: string | undefined;
420
882
  };
421
883
  export type BrowserSessionListResponse = {
@@ -453,11 +915,20 @@ export type InteractionFrameStreamAttachment<RelayKind extends 3 | 4 = 3 | 4> =
453
915
  port: number;
454
916
  };
455
917
  };
918
+ export type ComputerFrameStreamAttachment = InteractionFrameStreamAttachment<4> | {
919
+ kind: "direct_rfb";
920
+ url: string;
921
+ protocols: string[];
922
+ inputAllowed: boolean;
923
+ };
456
924
  export type BrowserSessionAttachment = {
457
925
  browserSessionId: string;
458
926
  controllerGeneration: string;
459
927
  targetId: string;
460
928
  stream: InteractionFrameStreamAttachment<3>;
929
+ /** Negotiated from this attachment’s live controller, absent on older helpers. */
930
+ fencedInputBatches?: true | undefined;
931
+ focusedInputObservations?: true | undefined;
461
932
  expiresAt: string;
462
933
  };
463
934
  export type BrowserSessionAttachmentRequest = {
@@ -471,6 +942,10 @@ export type BrowserActionRequest = {
471
942
  expectedTargetGeneration: string;
472
943
  expectedDocumentGeneration: string | null;
473
944
  expectedFrameId: string | null;
945
+ /** `input` is negotiated by focusedInputObservations on a live attachment.
946
+ * It returns optional native-select metadata after a pointer click, and null
947
+ * for ordinary input. Use full for agent observations. */
948
+ observationMode?: "full" | "none" | "input" | undefined;
474
949
  action: BrowserAction | BrowserActionBatch;
475
950
  };
476
951
  export type BrowserActionReceipt = {
@@ -499,9 +974,19 @@ export type ComputerSessionCapabilities = {
499
974
  semanticActions: boolean;
500
975
  pointerInput: boolean;
501
976
  keyboardInput: boolean;
977
+ clipboard: boolean;
502
978
  backgroundActions: boolean;
979
+ /** Raw window input stays in the background. Absent means foreground-only. */
980
+ backgroundInput?: boolean | undefined;
503
981
  parallelApps: boolean;
504
982
  };
983
+ export type ComputerClipboard = {
984
+ computerSessionId: string;
985
+ controllerGeneration: string;
986
+ text: string | null;
987
+ truncated: boolean;
988
+ observedAt: string;
989
+ };
505
990
  export type ComputerSession = {
506
991
  id: string;
507
992
  accountId: string;
@@ -585,6 +1070,10 @@ export type ComputerAction = {
585
1070
  type: "keyboard";
586
1071
  action: "type" | "press";
587
1072
  value: string;
1073
+ } | {
1074
+ type: "clipboard";
1075
+ operation: "write" | "clear" | "copy" | "paste";
1076
+ text?: string | undefined;
588
1077
  } | {
589
1078
  type: "focus";
590
1079
  targetId: string;
@@ -626,9 +1115,17 @@ export type ComputerSessionAttachment = {
626
1115
  computerSessionId: string;
627
1116
  controllerGeneration: string;
628
1117
  targetId: string;
629
- stream: InteractionFrameStreamAttachment<4>;
1118
+ /** Viewer posture when attached; actions still reauthorize the live source. */
1119
+ inputAllowed?: boolean | undefined;
1120
+ stream: ComputerFrameStreamAttachment;
630
1121
  expiresAt: string;
631
1122
  };
1123
+ /** Caller-specific hint only; every action still requires live authorization. */
1124
+ export type ComputerSessionInputPosture = {
1125
+ computerSessionId: string;
1126
+ controllerGeneration: string;
1127
+ inputAllowed: boolean;
1128
+ };
632
1129
  export type ComputerSessionAttachmentRequest = {
633
1130
  targetId: string;
634
1131
  expiresInSeconds?: number | undefined;
@@ -667,20 +1164,48 @@ export type BrowserDiagnosticsOptions = {
667
1164
  };
668
1165
  /** The exact HTTP surface needed by the framework-free interaction client. */
669
1166
  export interface InteractionTransport {
1167
+ listNetworkRoutes(workspaceId: string, options?: NetworkRouteListOptions): Promise<NetworkRouteListResponse>;
1168
+ getNetworkRoute(workspaceId: string, networkRouteId: string, options?: OpenGeniRequestOptions): Promise<NetworkRoute>;
1169
+ createNetworkRoute(workspaceId: string, request: CreateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteMutationResponse>;
1170
+ updateNetworkRoute(workspaceId: string, networkRouteId: string, request: UpdateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteMutationResponse>;
1171
+ listSiteAuthConnections(workspaceId: string, options?: SiteAuthConnectionListOptions): Promise<SiteAuthConnectionListResponse>;
1172
+ getSiteAuthConnection(workspaceId: string, siteAuthConnectionId: string, options?: OpenGeniRequestOptions): Promise<SiteAuthConnection>;
1173
+ createSiteAuthConnection(workspaceId: string, request: CreateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionMutationResponse>;
1174
+ updateSiteAuthConnection(workspaceId: string, siteAuthConnectionId: string, request: UpdateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionMutationResponse>;
1175
+ listAuthRuns(workspaceId: string, options?: AuthRunListOptions): Promise<AuthRunListResponse>;
1176
+ getAuthRun(workspaceId: string, authRunId: string, options?: OpenGeniRequestOptions): Promise<AuthRun>;
1177
+ startBrowserAuthRun(workspaceId: string, browserSessionId: string, request: StartAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1178
+ reportBrowserAuthRun(workspaceId: string, browserSessionId: string, authRunId: string, request: ReportAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1179
+ protectedBrowserAuthFill(workspaceId: string, browserSessionId: string, authRunId: string, request: ProtectedAuthFillRequest, options?: OpenGeniRequestOptions): Promise<ProtectedAuthFillResponse>;
1180
+ advanceExternalBrowserAuthRun(workspaceId: string, browserSessionId: string, authRunId: string, request: ExternalAuthRunRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthRunResponse>;
1181
+ openExternalBrowserAuthFlow(workspaceId: string, browserSessionId: string, authRunId: string, request: ExternalAuthInteractiveRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthInteractiveResponse>;
1182
+ verifyBrowserAuthRun(workspaceId: string, browserSessionId: string, authRunId: string, request: VerifyAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1183
+ listInteractionInterventions(workspaceId: string, options?: InteractionInterventionListOptions): Promise<InteractionInterventionListResponse>;
1184
+ getInteractionIntervention(workspaceId: string, interventionId: string, options?: OpenGeniRequestOptions): Promise<InteractionIntervention>;
1185
+ createInteractionIntervention(workspaceId: string, request: CreateInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionMutationResponse>;
1186
+ resolveInteractionIntervention(workspaceId: string, interventionId: string, request: ResolveInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionMutationResponse>;
670
1187
  listAttachedBrowsers(workspaceId: string, options?: AttachedBrowserDeviceListOptions): Promise<AttachedBrowserDeviceListResponse>;
671
1188
  getAttachedBrowser(workspaceId: string, deviceId: string, options?: OpenGeniRequestOptions): Promise<AttachedBrowserDevice>;
672
1189
  listBrowserIdentities(workspaceId: string, options?: BrowserIdentityListOptions): Promise<BrowserIdentityListResponse>;
673
1190
  getBrowserIdentity(workspaceId: string, identityId: string, options?: OpenGeniRequestOptions): Promise<BrowserIdentity>;
674
1191
  createBrowserIdentity(workspaceId: string, request: CreateBrowserIdentityRequest, options?: OpenGeniRequestOptions): Promise<BrowserIdentityMutationResponse>;
1192
+ updateBrowserIdentity(workspaceId: string, identityId: string, request: UpdateBrowserIdentityRequest, options?: OpenGeniRequestOptions): Promise<BrowserIdentityMutationResponse>;
675
1193
  listBrowserRevisions(workspaceId: string, identityId: string, options?: OpenGeniRequestOptions): Promise<BrowserRevisionListResponse>;
676
1194
  listBrowserSessions(workspaceId: string, options?: OpenGeniRequestOptions): Promise<BrowserSessionListResponse>;
677
1195
  getBrowserSession(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserSession>;
1196
+ readBrowserClipboard(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserClipboard>;
1197
+ listBrowserDownloads(workspaceId: string, browserSessionId: string, options?: OpenGeniRequestOptions): Promise<BrowserDownloadListResponse>;
1198
+ getBrowserDownload(workspaceId: string, browserSessionId: string, downloadId: string, options?: OpenGeniRequestOptions): Promise<BrowserDownload>;
1199
+ saveBrowserDownload(workspaceId: string, browserSessionId: string, downloadId: string, request: BrowserDownloadSaveRequest, options?: OpenGeniRequestOptions): Promise<BrowserDownloadSaveResponse>;
678
1200
  createBrowserSession(workspaceId: string, request: CreateBrowserSessionRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
679
1201
  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>;
1202
+ openBrowserTarget(workspaceId: string, browserSessionId: string, request?: BrowserOpenTargetRequest, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
1203
+ selectBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
682
1204
  closeBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
683
1205
  observeBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
1206
+ getBrowserTargetState(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetState>;
1207
+ readBrowserDom(workspaceId: string, browserSessionId: string, targetId: string, request: BrowserDomReadRequest, options?: OpenGeniRequestOptions): Promise<BrowserDomReadResponse>;
1208
+ captureBrowserTarget(workspaceId: string, browserSessionId: string, targetId: string, options?: OpenGeniRequestOptions, captureOptions?: BrowserScreenshotOptions): Promise<BrowserFrame>;
684
1209
  actInBrowser(workspaceId: string, browserSessionId: string, request: BrowserActionRequest, options?: OpenGeniRequestOptions): Promise<BrowserActionReceipt>;
685
1210
  getBrowserActionReceipt(workspaceId: string, browserSessionId: string, operationId: string, options?: OpenGeniRequestOptions): Promise<BrowserActionReceipt>;
686
1211
  listBrowserDiagnostics(workspaceId: string, browserSessionId: string, targetId: string, options?: BrowserDiagnosticsOptions): Promise<BrowserDiagnosticBatch>;
@@ -692,9 +1217,12 @@ export interface InteractionTransport {
692
1217
  endBrowserSession(workspaceId: string, browserSessionId: string, request: BrowserSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
693
1218
  listComputerSessions(workspaceId: string, options?: OpenGeniRequestOptions): Promise<ComputerSessionListResponse>;
694
1219
  getComputerSession(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerSession>;
1220
+ getComputerInputPosture?(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerSessionInputPosture>;
1221
+ readComputerClipboard(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerClipboard>;
695
1222
  createComputerSession(workspaceId: string, request: CreateComputerSessionRequest, options?: OpenGeniRequestOptions): Promise<ComputerSessionMutationResponse>;
696
1223
  listComputerTargets(workspaceId: string, computerSessionId: string, options?: OpenGeniRequestOptions): Promise<ComputerTargetListResponse>;
697
1224
  observeComputerTarget(workspaceId: string, computerSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<ComputerObservation>;
1225
+ captureComputerTarget(workspaceId: string, computerSessionId: string, targetId: string, options?: OpenGeniRequestOptions): Promise<ComputerFrame>;
698
1226
  actInComputer(workspaceId: string, computerSessionId: string, request: ComputerActionRequest, options?: OpenGeniRequestOptions): Promise<ComputerActionReceipt>;
699
1227
  getComputerActionReceipt(workspaceId: string, computerSessionId: string, operationId: string, options?: OpenGeniRequestOptions): Promise<ComputerActionReceipt>;
700
1228
  attachComputerSession(workspaceId: string, computerSessionId: string, request: ComputerSessionAttachmentRequest, options?: OpenGeniRequestOptions): Promise<ComputerSessionAttachment>;
@@ -706,9 +1234,29 @@ export type BrowserInteractionTransport = InteractionTransport;
706
1234
  export type BrowserIdentityListOptions = OpenGeniRequestOptions & {
707
1235
  includeArchived?: boolean | undefined;
708
1236
  };
1237
+ export type NetworkRouteListOptions = OpenGeniRequestOptions & {
1238
+ includeArchived?: boolean | undefined;
1239
+ };
1240
+ export type SiteAuthConnectionListOptions = OpenGeniRequestOptions & {
1241
+ includeArchived?: boolean | undefined;
1242
+ };
1243
+ export type AuthRunListOptions = OpenGeniRequestOptions & {
1244
+ browserSessionId?: string | undefined;
1245
+ siteAuthConnectionId?: string | undefined;
1246
+ includeSettled?: boolean | undefined;
1247
+ };
1248
+ export type InteractionInterventionListOptions = OpenGeniRequestOptions & {
1249
+ resourceKind?: "browser_session" | "computer_session" | undefined;
1250
+ resourceId?: string | undefined;
1251
+ includeSettled?: boolean | undefined;
1252
+ };
709
1253
  export type AttachedBrowserDeviceListOptions = OpenGeniRequestOptions & {
710
1254
  includeDisconnected?: boolean | undefined;
711
1255
  };
1256
+ export type BrowserDownloadSaveOptions = OpenGeniRequestOptions & {
1257
+ operationId?: string | undefined;
1258
+ overwrite?: boolean | undefined;
1259
+ };
712
1260
  export type CurrentOrOpenBrowserOptions = {
713
1261
  workspaceId: string;
714
1262
  associationSessionId: string;
@@ -716,9 +1264,11 @@ export type CurrentOrOpenBrowserOptions = {
716
1264
  name?: string | undefined;
717
1265
  initialUrl?: string | undefined;
718
1266
  headless?: boolean | undefined;
1267
+ storageMode?: "private_profile" | "ephemeral_context" | undefined;
719
1268
  placement?: InteractionPlacement | undefined;
720
1269
  identityId?: string | undefined;
721
1270
  baseRevisionId?: string | undefined;
1271
+ networkRouteId?: string | undefined;
722
1272
  linkedComputerSessionId?: string | undefined;
723
1273
  signal?: AbortSignal | undefined;
724
1274
  };
@@ -733,10 +1283,89 @@ export type CurrentOrOpenComputerOptions = {
733
1283
  /** Framework-free resource facade over the public interaction HTTP API. */
734
1284
  export declare class OpenGeniInteractionClient {
735
1285
  readonly attachedBrowsers: AttachedBrowserDeviceCollection;
1286
+ readonly authRuns: AuthRunCollection;
736
1287
  readonly browsers: BrowserSessionCollection;
737
1288
  readonly computers: ComputerSessionCollection;
738
1289
  readonly identities: BrowserIdentityCollection;
1290
+ readonly interventions: InteractionInterventionCollection;
1291
+ readonly networkRoutes: NetworkRouteCollection;
1292
+ readonly siteAuthConnections: SiteAuthConnectionCollection;
1293
+ constructor(transport: BrowserInteractionTransport);
1294
+ }
1295
+ export declare class NetworkRouteCollection {
1296
+ private readonly transport;
1297
+ constructor(transport: BrowserInteractionTransport);
1298
+ list(workspaceId: string, options?: NetworkRouteListOptions): Promise<NetworkRouteListResponse>;
1299
+ route(workspaceId: string, networkRouteId: string): NetworkRouteResource;
1300
+ create(workspaceId: string, request: CreateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteResource>;
1301
+ }
1302
+ export declare class NetworkRouteResource {
1303
+ private readonly transport;
1304
+ readonly workspaceId: string;
1305
+ readonly id: string;
1306
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
1307
+ get(options?: OpenGeniRequestOptions): Promise<NetworkRoute>;
1308
+ update(request: UpdateNetworkRouteRequest, options?: OpenGeniRequestOptions): Promise<NetworkRouteMutationResponse>;
1309
+ }
1310
+ export declare class SiteAuthConnectionCollection {
1311
+ private readonly transport;
1312
+ constructor(transport: BrowserInteractionTransport);
1313
+ list(workspaceId: string, options?: SiteAuthConnectionListOptions): Promise<SiteAuthConnectionListResponse>;
1314
+ connection(workspaceId: string, connectionId: string): SiteAuthConnectionResource;
1315
+ create(workspaceId: string, request: CreateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionResource>;
1316
+ }
1317
+ export declare class SiteAuthConnectionResource {
1318
+ private readonly transport;
1319
+ readonly workspaceId: string;
1320
+ readonly id: string;
1321
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
1322
+ get(options?: OpenGeniRequestOptions): Promise<SiteAuthConnection>;
1323
+ update(request: UpdateSiteAuthConnectionRequest, options?: OpenGeniRequestOptions): Promise<SiteAuthConnectionMutationResponse>;
1324
+ }
1325
+ export declare class AuthRunCollection {
1326
+ private readonly transport;
1327
+ constructor(transport: BrowserInteractionTransport);
1328
+ list(workspaceId: string, options?: AuthRunListOptions): Promise<AuthRunListResponse>;
1329
+ get(workspaceId: string, authRunId: string, options?: OpenGeniRequestOptions): Promise<AuthRun>;
1330
+ run(workspaceId: string, browserSessionId: string, authRunId: string): AuthRunResource;
1331
+ }
1332
+ export declare class BrowserAuthRunCollection {
1333
+ private readonly transport;
1334
+ readonly workspaceId: string;
1335
+ readonly browserSessionId: string;
1336
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
1337
+ list(options?: Omit<AuthRunListOptions, "browserSessionId">): Promise<AuthRunListResponse>;
1338
+ run(authRunId: string): AuthRunResource;
1339
+ start(request: StartAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunResource>;
1340
+ }
1341
+ export declare class AuthRunResource {
1342
+ private readonly transport;
1343
+ readonly workspaceId: string;
1344
+ readonly browserSessionId: string;
1345
+ readonly id: string;
1346
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string, id: string);
1347
+ get(options?: OpenGeniRequestOptions): Promise<AuthRun>;
1348
+ report(request: ReportAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1349
+ protectedFill(request: ProtectedAuthFillRequest, options?: OpenGeniRequestOptions): Promise<ProtectedAuthFillResponse>;
1350
+ advanceExternal(request: ExternalAuthRunRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthRunResponse>;
1351
+ /** Human-session helper. Hosted provider URLs never appear in model tools. */
1352
+ openExternalFlow(request: ExternalAuthInteractiveRequest, options?: OpenGeniRequestOptions): Promise<ExternalAuthInteractiveResponse>;
1353
+ verify(request: VerifyAuthRunRequest, options?: OpenGeniRequestOptions): Promise<AuthRunMutationResponse>;
1354
+ }
1355
+ export declare class InteractionInterventionCollection {
1356
+ private readonly transport;
739
1357
  constructor(transport: BrowserInteractionTransport);
1358
+ list(workspaceId: string, options?: InteractionInterventionListOptions): Promise<InteractionInterventionListResponse>;
1359
+ intervention(workspaceId: string, interventionId: string): InteractionInterventionResource;
1360
+ create(workspaceId: string, request: CreateInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionResource>;
1361
+ }
1362
+ export declare class InteractionInterventionResource {
1363
+ private readonly transport;
1364
+ readonly workspaceId: string;
1365
+ readonly id: string;
1366
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
1367
+ get(options?: OpenGeniRequestOptions): Promise<InteractionIntervention>;
1368
+ resolve(request: ResolveInteractionInterventionRequest, options?: OpenGeniRequestOptions): Promise<InteractionInterventionMutationResponse>;
740
1369
  }
741
1370
  export declare class AttachedBrowserDeviceCollection {
742
1371
  private readonly transport;
@@ -765,6 +1394,7 @@ export declare class BrowserIdentityResource {
765
1394
  constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
766
1395
  get(options?: OpenGeniRequestOptions): Promise<BrowserIdentity>;
767
1396
  revisions(options?: OpenGeniRequestOptions): Promise<BrowserRevisionListResponse>;
1397
+ update(request: UpdateBrowserIdentityRequest, options?: OpenGeniRequestOptions): Promise<BrowserIdentityMutationResponse>;
768
1398
  }
769
1399
  export declare class BrowserSessionCollection {
770
1400
  private readonly transport;
@@ -778,12 +1408,19 @@ export declare class BrowserSessionResource {
778
1408
  private readonly transport;
779
1409
  readonly workspaceId: string;
780
1410
  readonly id: string;
1411
+ readonly auth: BrowserAuthRunCollection;
1412
+ readonly clipboard: BrowserClipboardResource;
1413
+ readonly downloads: BrowserDownloadCollection;
781
1414
  readonly tabs: BrowserTargetCollection;
782
1415
  /** Alias for hosts that prefer the protocol term. */
783
1416
  readonly targets: BrowserTargetCollection;
784
1417
  constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
785
1418
  get(options?: OpenGeniRequestOptions): Promise<BrowserSession>;
786
1419
  observe(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
1420
+ targetState(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetState>;
1421
+ readDom(targetId: string, request: BrowserDomReadRequest, options?: OpenGeniRequestOptions): Promise<BrowserDomReadResponse>;
1422
+ capture(targetId: string, options?: OpenGeniRequestOptions, captureOptions?: BrowserScreenshotOptions): Promise<BrowserFrame>;
1423
+ screenshot(targetId: string, captureOptions?: BrowserScreenshotOptions, options?: OpenGeniRequestOptions): Promise<BrowserFrame>;
787
1424
  act(request: BrowserActionRequest, options?: OpenGeniRequestOptions): Promise<BrowserActionReceipt>;
788
1425
  receipt(operationId: string, options?: OpenGeniRequestOptions): Promise<BrowserActionReceipt>;
789
1426
  diagnostics(targetId: string, options?: BrowserDiagnosticsOptions): Promise<BrowserDiagnosticBatch>;
@@ -794,14 +1431,41 @@ export declare class BrowserSessionResource {
794
1431
  resume(request?: BrowserSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
795
1432
  end(request?: BrowserSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<BrowserSessionMutationResponse>;
796
1433
  }
1434
+ export declare class BrowserClipboardResource {
1435
+ private readonly transport;
1436
+ readonly workspaceId: string;
1437
+ readonly browserSessionId: string;
1438
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
1439
+ read(options?: OpenGeniRequestOptions): Promise<BrowserClipboard>;
1440
+ }
1441
+ export declare class BrowserDownloadCollection {
1442
+ private readonly transport;
1443
+ readonly workspaceId: string;
1444
+ readonly browserSessionId: string;
1445
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
1446
+ list(options?: OpenGeniRequestOptions): Promise<BrowserDownloadListResponse>;
1447
+ download(downloadId: string): BrowserDownloadResource;
1448
+ }
1449
+ export declare class BrowserDownloadResource {
1450
+ private readonly transport;
1451
+ readonly workspaceId: string;
1452
+ readonly browserSessionId: string;
1453
+ readonly id: string;
1454
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string, id: string);
1455
+ get(options?: OpenGeniRequestOptions): Promise<BrowserDownload>;
1456
+ /** Publish this exact private browser download into the source session's
1457
+ * workspace. Pass an operationId when the caller needs retry identity across
1458
+ * process boundaries; otherwise one is generated for this call. */
1459
+ saveToWorkspace(destinationPath: string, options?: BrowserDownloadSaveOptions): Promise<BrowserDownloadSaveResponse>;
1460
+ }
797
1461
  export declare class BrowserTargetCollection {
798
1462
  private readonly transport;
799
1463
  private readonly workspaceId;
800
1464
  private readonly browserSessionId;
801
1465
  constructor(transport: BrowserInteractionTransport, workspaceId: string, browserSessionId: string);
802
1466
  list(options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
803
- open(url?: string, options?: OpenGeniRequestOptions): Promise<BrowserTarget>;
804
- select(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTarget>;
1467
+ open(url?: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
1468
+ select(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserObservation>;
805
1469
  close(targetId: string, options?: OpenGeniRequestOptions): Promise<BrowserTargetListResponse>;
806
1470
  }
807
1471
  export declare class ComputerSessionCollection {
@@ -819,15 +1483,25 @@ export declare class ComputerSessionResource {
819
1483
  readonly targets: ComputerTargetCollection;
820
1484
  /** Native application/window targets are also the public app collection. */
821
1485
  readonly apps: ComputerTargetCollection;
1486
+ readonly clipboard: ComputerClipboardResource;
822
1487
  constructor(transport: BrowserInteractionTransport, workspaceId: string, id: string);
823
1488
  get(options?: OpenGeniRequestOptions): Promise<ComputerSession>;
824
1489
  observe(targetId: string, options?: OpenGeniRequestOptions): Promise<ComputerObservation>;
1490
+ capture(targetId: string, options?: OpenGeniRequestOptions): Promise<ComputerFrame>;
825
1491
  act(request: ComputerActionRequest, options?: OpenGeniRequestOptions): Promise<ComputerActionReceipt>;
826
1492
  receipt(operationId: string, options?: OpenGeniRequestOptions): Promise<ComputerActionReceipt>;
827
1493
  attach(request: ComputerSessionAttachmentRequest, options?: OpenGeniRequestOptions): Promise<ComputerSessionAttachment>;
1494
+ inputPosture(options?: OpenGeniRequestOptions): Promise<ComputerSessionInputPosture>;
828
1495
  heartbeat(options?: OpenGeniRequestOptions): Promise<ComputerSessionHeartbeatResponse>;
829
1496
  end(request?: ComputerSessionLifecycleRequest, options?: OpenGeniRequestOptions): Promise<ComputerSessionMutationResponse>;
830
1497
  }
1498
+ export declare class ComputerClipboardResource {
1499
+ private readonly transport;
1500
+ readonly workspaceId: string;
1501
+ readonly computerSessionId: string;
1502
+ constructor(transport: BrowserInteractionTransport, workspaceId: string, computerSessionId: string);
1503
+ read(options?: OpenGeniRequestOptions): Promise<ComputerClipboard>;
1504
+ }
831
1505
  export declare class ComputerTargetCollection {
832
1506
  private readonly transport;
833
1507
  private readonly workspaceId;
@@ -854,6 +1528,13 @@ export type BrowserFrameMetadata = {
854
1528
  export type BrowserFrame = BrowserFrameMetadata & {
855
1529
  data: Uint8Array;
856
1530
  };
1531
+ export type BrowserScreenshotOptions = {
1532
+ /** Capture the document content instead of the visible viewport. */
1533
+ fullPage?: boolean;
1534
+ format?: "jpeg" | "png";
1535
+ /** JPEG quality, from 1 to 100. Ignored for PNG. */
1536
+ quality?: number;
1537
+ };
857
1538
  export type ComputerFrameMetadata = {
858
1539
  frameId: string;
859
1540
  computerSessionId: string;
@@ -883,3 +1564,4 @@ export declare function decodeBrowserFrameMessage(message: ArrayBuffer | Uint8Ar
883
1564
  export declare function decodeComputerFrameMessage(message: ArrayBuffer | Uint8Array): Promise<ComputerFrame>;
884
1565
  export declare function parseBrowserFrameMetadata(value: unknown): BrowserFrameMetadata;
885
1566
  export declare function parseComputerFrameMetadata(value: unknown): ComputerFrameMetadata;
1567
+ export declare function decodeComputerFrameMetadataHeader(value: string): ComputerFrameMetadata;