@bctrl/sdk 1.0.1 → 1.0.2

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 (279) hide show
  1. package/README.md +24 -29
  2. package/dist/bctrl.d.ts +22 -36
  3. package/dist/bctrl.js +40 -75
  4. package/dist/browsers.d.ts +24 -0
  5. package/dist/browsers.js +82 -0
  6. package/dist/errors.d.ts +49 -43
  7. package/dist/errors.js +83 -120
  8. package/dist/files.d.ts +31 -0
  9. package/dist/files.js +97 -0
  10. package/dist/http.d.ts +18 -0
  11. package/dist/http.js +135 -0
  12. package/dist/index.d.ts +9 -12
  13. package/dist/index.js +8 -23
  14. package/dist/invocations.d.ts +24 -0
  15. package/dist/invocations.js +66 -0
  16. package/dist/pagination.d.ts +2 -0
  17. package/dist/pagination.js +13 -0
  18. package/dist/runs.d.ts +38 -0
  19. package/dist/runs.js +99 -0
  20. package/dist/runtimes.d.ts +73 -0
  21. package/dist/runtimes.js +205 -0
  22. package/dist/spaces.d.ts +41 -0
  23. package/dist/spaces.js +96 -0
  24. package/dist/types.d.ts +386 -0
  25. package/dist/types.js +1 -0
  26. package/dist/utils.d.ts +4 -0
  27. package/dist/utils.js +27 -0
  28. package/dist/version.js +2 -2
  29. package/package.json +12 -31
  30. package/dist/agents/browser-use/index.d.ts +0 -1
  31. package/dist/agents/browser-use/index.js +0 -9
  32. package/dist/agents/browser-use/namespace.d.ts +0 -39
  33. package/dist/agents/browser-use/namespace.js +0 -93
  34. package/dist/agents/index.d.ts +0 -2
  35. package/dist/agents/index.js +0 -17
  36. package/dist/agents/stagehand/core.d.ts +0 -93
  37. package/dist/agents/stagehand/core.js +0 -144
  38. package/dist/agents/stagehand/index.d.ts +0 -3
  39. package/dist/agents/stagehand/index.js +0 -24
  40. package/dist/agents/stagehand/namespace.d.ts +0 -51
  41. package/dist/agents/stagehand/namespace.js +0 -65
  42. package/dist/ai-credentials/client.d.ts +0 -12
  43. package/dist/ai-credentials/client.js +0 -70
  44. package/dist/ai-credentials/index.d.ts +0 -1
  45. package/dist/ai-credentials/index.js +0 -1
  46. package/dist/base/event-binding.d.ts +0 -7
  47. package/dist/base/event-binding.js +0 -23
  48. package/dist/base/types.d.ts +0 -109
  49. package/dist/base/types.js +0 -4
  50. package/dist/browser-extensions/client.d.ts +0 -15
  51. package/dist/browser-extensions/client.js +0 -72
  52. package/dist/browser-extensions/index.d.ts +0 -2
  53. package/dist/browser-extensions/index.js +0 -1
  54. package/dist/browser-profiles/client.d.ts +0 -11
  55. package/dist/browser-profiles/client.js +0 -63
  56. package/dist/browser-profiles/index.d.ts +0 -1
  57. package/dist/browser-profiles/index.js +0 -1
  58. package/dist/captcha/index.d.ts +0 -1
  59. package/dist/captcha/index.js +0 -1
  60. package/dist/captcha/namespace.d.ts +0 -34
  61. package/dist/captcha/namespace.js +0 -41
  62. package/dist/client/index.d.ts +0 -1
  63. package/dist/client/index.js +0 -1
  64. package/dist/client/rpc.d.ts +0 -83
  65. package/dist/client/rpc.js +0 -354
  66. package/dist/config.d.ts +0 -5
  67. package/dist/config.js +0 -28
  68. package/dist/constants/browser.d.ts +0 -2
  69. package/dist/constants/browser.js +0 -1
  70. package/dist/contracts/agent-tools.d.ts +0 -45
  71. package/dist/contracts/agent-tools.js +0 -31
  72. package/dist/contracts/automation.d.ts +0 -265
  73. package/dist/contracts/automation.js +0 -109
  74. package/dist/contracts/browser-management.d.ts +0 -179
  75. package/dist/contracts/browser-management.js +0 -95
  76. package/dist/contracts/browser-use.d.ts +0 -136
  77. package/dist/contracts/browser-use.js +0 -93
  78. package/dist/contracts/captcha.d.ts +0 -114
  79. package/dist/contracts/captcha.js +0 -40
  80. package/dist/contracts/desktop.d.ts +0 -223
  81. package/dist/contracts/desktop.js +0 -121
  82. package/dist/contracts/drivers/playwright.d.ts +0 -2008
  83. package/dist/contracts/drivers/playwright.js +0 -2033
  84. package/dist/contracts/drivers/puppeteer.d.ts +0 -1221
  85. package/dist/contracts/drivers/puppeteer.js +0 -941
  86. package/dist/contracts/drivers/selenium.d.ts +0 -156
  87. package/dist/contracts/drivers/selenium.js +0 -61
  88. package/dist/contracts/drivers/stagehand.d.ts +0 -155
  89. package/dist/contracts/drivers/stagehand.js +0 -7
  90. package/dist/contracts/extensions.d.ts +0 -13
  91. package/dist/contracts/extensions.js +0 -9
  92. package/dist/contracts/index.d.ts +0 -13
  93. package/dist/contracts/index.js +0 -13
  94. package/dist/contracts/public-api.d.ts +0 -360
  95. package/dist/contracts/public-api.js +0 -17
  96. package/dist/contracts/runtime.d.ts +0 -81
  97. package/dist/contracts/runtime.js +0 -16
  98. package/dist/contracts/stagehand.d.ts +0 -253
  99. package/dist/contracts/stagehand.js +0 -145
  100. package/dist/contracts/storage.d.ts +0 -51
  101. package/dist/contracts/storage.js +0 -56
  102. package/dist/contracts/vault.d.ts +0 -119
  103. package/dist/contracts/vault.js +0 -112
  104. package/dist/contracts/version.d.ts +0 -3
  105. package/dist/contracts/version.js +0 -16
  106. package/dist/desktop.d.ts +0 -2
  107. package/dist/desktop.js +0 -3
  108. package/dist/drivers/desktop/index.d.ts +0 -65
  109. package/dist/drivers/desktop/index.js +0 -68
  110. package/dist/drivers/desktop/session.d.ts +0 -313
  111. package/dist/drivers/desktop/session.js +0 -432
  112. package/dist/drivers/playwright/event-emitter.d.ts +0 -160
  113. package/dist/drivers/playwright/event-emitter.js +0 -297
  114. package/dist/drivers/playwright/generated/api-request-context.d.ts +0 -137
  115. package/dist/drivers/playwright/generated/api-request-context.js +0 -154
  116. package/dist/drivers/playwright/generated/api-response.d.ts +0 -119
  117. package/dist/drivers/playwright/generated/api-response.js +0 -123
  118. package/dist/drivers/playwright/generated/browser-context.d.ts +0 -284
  119. package/dist/drivers/playwright/generated/browser-context.js +0 -458
  120. package/dist/drivers/playwright/generated/browser.d.ts +0 -120
  121. package/dist/drivers/playwright/generated/browser.js +0 -151
  122. package/dist/drivers/playwright/generated/clock.d.ts +0 -80
  123. package/dist/drivers/playwright/generated/clock.js +0 -94
  124. package/dist/drivers/playwright/generated/console-message.d.ts +0 -94
  125. package/dist/drivers/playwright/generated/console-message.js +0 -89
  126. package/dist/drivers/playwright/generated/coverage.d.ts +0 -57
  127. package/dist/drivers/playwright/generated/coverage.js +0 -66
  128. package/dist/drivers/playwright/generated/dialog.d.ts +0 -79
  129. package/dist/drivers/playwright/generated/dialog.js +0 -80
  130. package/dist/drivers/playwright/generated/element-handle.d.ts +0 -399
  131. package/dist/drivers/playwright/generated/element-handle.js +0 -501
  132. package/dist/drivers/playwright/generated/frame-locator.d.ts +0 -34
  133. package/dist/drivers/playwright/generated/frame-locator.js +0 -63
  134. package/dist/drivers/playwright/generated/frame.d.ts +0 -557
  135. package/dist/drivers/playwright/generated/frame.js +0 -634
  136. package/dist/drivers/playwright/generated/js-handle.d.ts +0 -72
  137. package/dist/drivers/playwright/generated/js-handle.js +0 -92
  138. package/dist/drivers/playwright/generated/keyboard.d.ts +0 -103
  139. package/dist/drivers/playwright/generated/keyboard.js +0 -113
  140. package/dist/drivers/playwright/generated/locator.d.ts +0 -795
  141. package/dist/drivers/playwright/generated/locator.js +0 -974
  142. package/dist/drivers/playwright/generated/mouse.d.ts +0 -97
  143. package/dist/drivers/playwright/generated/mouse.js +0 -109
  144. package/dist/drivers/playwright/generated/page.d.ts +0 -762
  145. package/dist/drivers/playwright/generated/page.js +0 -988
  146. package/dist/drivers/playwright/generated/touchscreen.d.ts +0 -34
  147. package/dist/drivers/playwright/generated/touchscreen.js +0 -37
  148. package/dist/drivers/playwright/generated/tracing.d.ts +0 -78
  149. package/dist/drivers/playwright/generated/tracing.js +0 -80
  150. package/dist/drivers/playwright/generated/worker.d.ts +0 -53
  151. package/dist/drivers/playwright/generated/worker.js +0 -59
  152. package/dist/drivers/playwright/index.d.ts +0 -19
  153. package/dist/drivers/playwright/index.js +0 -20
  154. package/dist/drivers/playwright/remote-base.d.ts +0 -62
  155. package/dist/drivers/playwright/remote-base.js +0 -86
  156. package/dist/drivers/playwright/types.d.ts +0 -148
  157. package/dist/drivers/playwright/types.js +0 -8
  158. package/dist/drivers/puppeteer/errors.d.ts +0 -50
  159. package/dist/drivers/puppeteer/errors.js +0 -71
  160. package/dist/drivers/puppeteer/event-emitter.d.ts +0 -145
  161. package/dist/drivers/puppeteer/event-emitter.js +0 -259
  162. package/dist/drivers/puppeteer/generated/accessibility.d.ts +0 -77
  163. package/dist/drivers/puppeteer/generated/accessibility.js +0 -74
  164. package/dist/drivers/puppeteer/generated/browser-context.d.ts +0 -116
  165. package/dist/drivers/puppeteer/generated/browser-context.js +0 -168
  166. package/dist/drivers/puppeteer/generated/browser.d.ts +0 -169
  167. package/dist/drivers/puppeteer/generated/browser.js +0 -246
  168. package/dist/drivers/puppeteer/generated/console-message.d.ts +0 -54
  169. package/dist/drivers/puppeteer/generated/console-message.js +0 -69
  170. package/dist/drivers/puppeteer/generated/coverage.d.ts +0 -49
  171. package/dist/drivers/puppeteer/generated/coverage.js +0 -57
  172. package/dist/drivers/puppeteer/generated/dialog.d.ts +0 -46
  173. package/dist/drivers/puppeteer/generated/dialog.js +0 -60
  174. package/dist/drivers/puppeteer/generated/element-handle.d.ts +0 -261
  175. package/dist/drivers/puppeteer/generated/element-handle.js +0 -341
  176. package/dist/drivers/puppeteer/generated/file-chooser.d.ts +0 -34
  177. package/dist/drivers/puppeteer/generated/file-chooser.js +0 -43
  178. package/dist/drivers/puppeteer/generated/frame.d.ts +0 -221
  179. package/dist/drivers/puppeteer/generated/frame.js +0 -302
  180. package/dist/drivers/puppeteer/generated/http-request.d.ts +0 -195
  181. package/dist/drivers/puppeteer/generated/http-request.js +0 -243
  182. package/dist/drivers/puppeteer/generated/http-response.d.ts +0 -142
  183. package/dist/drivers/puppeteer/generated/http-response.js +0 -169
  184. package/dist/drivers/puppeteer/generated/js-handle.d.ts +0 -104
  185. package/dist/drivers/puppeteer/generated/js-handle.js +0 -125
  186. package/dist/drivers/puppeteer/generated/keyboard.d.ts +0 -79
  187. package/dist/drivers/puppeteer/generated/keyboard.js +0 -89
  188. package/dist/drivers/puppeteer/generated/locator.d.ts +0 -141
  189. package/dist/drivers/puppeteer/generated/locator.js +0 -164
  190. package/dist/drivers/puppeteer/generated/mouse.d.ts +0 -74
  191. package/dist/drivers/puppeteer/generated/mouse.js +0 -94
  192. package/dist/drivers/puppeteer/generated/page.d.ts +0 -604
  193. package/dist/drivers/puppeteer/generated/page.js +0 -776
  194. package/dist/drivers/puppeteer/generated/target.d.ts +0 -105
  195. package/dist/drivers/puppeteer/generated/target.js +0 -123
  196. package/dist/drivers/puppeteer/generated/touchscreen.d.ts +0 -87
  197. package/dist/drivers/puppeteer/generated/touchscreen.js +0 -103
  198. package/dist/drivers/puppeteer/generated/tracing.d.ts +0 -38
  199. package/dist/drivers/puppeteer/generated/tracing.js +0 -43
  200. package/dist/drivers/puppeteer/generated/web-worker.d.ts +0 -63
  201. package/dist/drivers/puppeteer/generated/web-worker.js +0 -73
  202. package/dist/drivers/puppeteer/index.d.ts +0 -21
  203. package/dist/drivers/puppeteer/index.js +0 -23
  204. package/dist/drivers/puppeteer/remote-base.d.ts +0 -57
  205. package/dist/drivers/puppeteer/remote-base.js +0 -79
  206. package/dist/drivers/puppeteer/types.d.ts +0 -178
  207. package/dist/drivers/puppeteer/types.js +0 -8
  208. package/dist/drivers/selenium/driver.d.ts +0 -28
  209. package/dist/drivers/selenium/driver.js +0 -169
  210. package/dist/drivers/selenium/element.d.ts +0 -34
  211. package/dist/drivers/selenium/element.js +0 -73
  212. package/dist/drivers/selenium/index.d.ts +0 -3
  213. package/dist/drivers/selenium/index.js +0 -5
  214. package/dist/drivers/selenium/types.d.ts +0 -2
  215. package/dist/drivers/selenium/types.js +0 -12
  216. package/dist/drivers/stagehand/generated/context.d.ts +0 -127
  217. package/dist/drivers/stagehand/generated/context.js +0 -153
  218. package/dist/drivers/stagehand/generated/locator.d.ts +0 -324
  219. package/dist/drivers/stagehand/generated/locator.js +0 -368
  220. package/dist/drivers/stagehand/generated/page.d.ts +0 -377
  221. package/dist/drivers/stagehand/generated/page.js +0 -439
  222. package/dist/drivers/stagehand/generated/response.d.ts +0 -197
  223. package/dist/drivers/stagehand/generated/response.js +0 -232
  224. package/dist/drivers/stagehand/index.d.ts +0 -5
  225. package/dist/drivers/stagehand/index.js +0 -8
  226. package/dist/drivers/stagehand/types.d.ts +0 -1
  227. package/dist/drivers/stagehand/types.js +0 -7
  228. package/dist/extensions/client.d.ts +0 -47
  229. package/dist/extensions/client.js +0 -154
  230. package/dist/extensions/index.d.ts +0 -1
  231. package/dist/extensions/index.js +0 -1
  232. package/dist/internal/dev-client.d.ts +0 -5
  233. package/dist/internal/dev-client.js +0 -9
  234. package/dist/internal/rpc-targets.d.ts +0 -17
  235. package/dist/internal/rpc-targets.js +0 -58
  236. package/dist/internal/serialization.d.ts +0 -32
  237. package/dist/internal/serialization.js +0 -42
  238. package/dist/internal/transport.d.ts +0 -24
  239. package/dist/internal/transport.js +0 -29
  240. package/dist/playwright.d.ts +0 -1
  241. package/dist/playwright.js +0 -2
  242. package/dist/puppeteer.d.ts +0 -1
  243. package/dist/puppeteer.js +0 -2
  244. package/dist/selenium.d.ts +0 -1
  245. package/dist/selenium.js +0 -2
  246. package/dist/stagehand.d.ts +0 -1
  247. package/dist/stagehand.js +0 -2
  248. package/dist/storage/client.d.ts +0 -151
  249. package/dist/storage/client.js +0 -329
  250. package/dist/storage/index.d.ts +0 -2
  251. package/dist/storage/index.js +0 -4
  252. package/dist/telemetry.d.ts +0 -18
  253. package/dist/telemetry.js +0 -93
  254. package/dist/updates/client.d.ts +0 -8
  255. package/dist/updates/client.js +0 -128
  256. package/dist/updates/index.d.ts +0 -1
  257. package/dist/updates/index.js +0 -1
  258. package/dist/utils/http.d.ts +0 -39
  259. package/dist/utils/http.js +0 -88
  260. package/dist/utils/index.d.ts +0 -4
  261. package/dist/utils/index.js +0 -4
  262. package/dist/utils/logger.d.ts +0 -27
  263. package/dist/utils/logger.js +0 -74
  264. package/dist/utils/schema.d.ts +0 -17
  265. package/dist/utils/schema.js +0 -31
  266. package/dist/utils/url.d.ts +0 -5
  267. package/dist/utils/url.js +0 -7
  268. package/dist/vault/client.d.ts +0 -43
  269. package/dist/vault/client.js +0 -123
  270. package/dist/vault/index.d.ts +0 -1
  271. package/dist/vault/index.js +0 -1
  272. package/dist/workspaces/browser-runtime.d.ts +0 -251
  273. package/dist/workspaces/browser-runtime.js +0 -1025
  274. package/dist/workspaces/client.d.ts +0 -48
  275. package/dist/workspaces/client.js +0 -222
  276. package/dist/workspaces/index.d.ts +0 -2
  277. package/dist/workspaces/index.js +0 -2
  278. package/dist/workspaces/runtime-event-pump.d.ts +0 -65
  279. package/dist/workspaces/runtime-event-pump.js +0 -716
@@ -0,0 +1,386 @@
1
+ export type JsonPrimitive = string | number | boolean | null;
2
+ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
3
+ export type JsonObject = {
4
+ [key: string]: JsonValue;
5
+ };
6
+ export interface V2ListEnvelope<T> {
7
+ data: T[];
8
+ nextCursor: string | null;
9
+ }
10
+ export interface V2PageQuery {
11
+ cursor?: string;
12
+ limit?: number;
13
+ }
14
+ export interface V2SpaceCreateRequest {
15
+ name: string;
16
+ region: string;
17
+ subaccountId?: string | null;
18
+ }
19
+ export interface V2SpaceUpdateRequest {
20
+ name?: string;
21
+ }
22
+ export interface V2Space {
23
+ id: string;
24
+ name: string;
25
+ region: string;
26
+ subaccountId?: string | null;
27
+ createdAt: string;
28
+ updatedAt: string;
29
+ }
30
+ export interface V2SpaceEnvironment {
31
+ spaceId: string;
32
+ mounts: JsonObject;
33
+ updatedAt: string;
34
+ }
35
+ export interface V2SpaceEnvironmentUpdateRequest {
36
+ mounts: JsonObject;
37
+ }
38
+ export type V2RuntimeType = 'browser';
39
+ export type V2RuntimeStatus = 'active' | 'stopped' | 'failed';
40
+ export type V2BrowserStealth = 'medium' | 'high' | 'ultra';
41
+ export type V2ProxyInput = {
42
+ mode: 'custom';
43
+ protocol: string;
44
+ host: string;
45
+ port: number;
46
+ username?: string;
47
+ password?: string;
48
+ } | {
49
+ mode: 'saved';
50
+ id: string;
51
+ overrides?: JsonObject;
52
+ };
53
+ export interface V2RuntimeFingerprintCreateConfig {
54
+ browser?: string;
55
+ locale?: string;
56
+ }
57
+ export interface V2RuntimeLifecycleConfig {
58
+ idleTimeoutMinutes?: number;
59
+ }
60
+ export interface V2BrowserRuntimeCreateConfig {
61
+ browser?: {
62
+ profile?: boolean;
63
+ };
64
+ stealth?: V2BrowserStealth;
65
+ proxy?: V2ProxyInput | null;
66
+ fingerprint?: V2RuntimeFingerprintCreateConfig;
67
+ extensions?: string[];
68
+ lifecycle?: V2RuntimeLifecycleConfig;
69
+ }
70
+ export interface V2RuntimeCreateRequest {
71
+ spaceId: string;
72
+ type: V2RuntimeType;
73
+ name?: string;
74
+ metadata?: JsonObject;
75
+ config?: V2BrowserRuntimeCreateConfig;
76
+ }
77
+ export type V2SpaceRuntimeCreateRequest = Omit<V2RuntimeCreateRequest, 'spaceId'>;
78
+ export interface V2RuntimeListQuery {
79
+ spaceId?: string;
80
+ status?: string | string[];
81
+ limit?: number;
82
+ }
83
+ export interface V2RuntimeSummary {
84
+ id: string;
85
+ name: string;
86
+ type: V2RuntimeType;
87
+ status: V2RuntimeStatus;
88
+ activeRunId: string | null;
89
+ createdAt: string;
90
+ updatedAt: string;
91
+ }
92
+ export interface V2Runtime extends V2RuntimeSummary {
93
+ config?: JsonObject;
94
+ metadata?: JsonObject | null;
95
+ }
96
+ export type V2ConnectionProtocol = 'cdp' | 'cua' | 'rdp' | 'vnc' | 'mcp' | 'http';
97
+ export type V2ConnectionEndpoint = {
98
+ type: 'websocket';
99
+ url: string;
100
+ } | {
101
+ type: 'http';
102
+ baseUrl: string;
103
+ } | {
104
+ type: 'rdp';
105
+ host: string;
106
+ port: number;
107
+ username: string;
108
+ password: string;
109
+ } | {
110
+ type: 'composite';
111
+ endpoints: Record<string, string>;
112
+ };
113
+ export interface V2RuntimeConnectionCreateRequest {
114
+ protocol: 'cdp';
115
+ options?: JsonObject;
116
+ }
117
+ export type V2RuntimeConnectionCreateOptions = Partial<V2RuntimeConnectionCreateRequest>;
118
+ export interface V2RuntimeConnection {
119
+ id: string;
120
+ protocol: V2ConnectionProtocol;
121
+ status: string;
122
+ runId: string;
123
+ createdAt: string;
124
+ expiresAt: string | null;
125
+ closedAt?: string | null;
126
+ revokedAt?: string | null;
127
+ }
128
+ export interface V2RuntimeConnectionCreateResponse extends V2RuntimeConnection {
129
+ endpoint: V2ConnectionEndpoint;
130
+ }
131
+ export interface V2RuntimeStartResponse {
132
+ runtime: V2Runtime;
133
+ run: V2Run;
134
+ }
135
+ export interface V2RunListQuery extends V2PageQuery {
136
+ status?: string | string[];
137
+ spaceId?: string;
138
+ runtimeId?: string;
139
+ }
140
+ export type V2RuntimeRunListQuery = Omit<V2RunListQuery, 'spaceId' | 'runtimeId'>;
141
+ export interface V2RunSummary {
142
+ id: string;
143
+ status: string;
144
+ createdAt: string;
145
+ startedAt: string;
146
+ finishedAt?: string | null;
147
+ }
148
+ export interface V2Run extends V2RunSummary {
149
+ spaceId: string;
150
+ runtimeId: string;
151
+ runtimeType: string;
152
+ durationMs?: number | null;
153
+ lastSeenAt?: string | null;
154
+ endedReason?: string | null;
155
+ failureReason?: string | null;
156
+ }
157
+ export interface V2RunEvent {
158
+ id: string;
159
+ runId: string;
160
+ runtimeId: string;
161
+ runtimeType: string;
162
+ type: string;
163
+ category: string;
164
+ time: string;
165
+ status?: string;
166
+ connectionId?: string;
167
+ commandId?: string;
168
+ invocationId?: string;
169
+ toolCallId?: string;
170
+ fileId?: string;
171
+ name?: string;
172
+ data?: JsonObject;
173
+ }
174
+ export interface V2RunEventsListQuery extends V2PageQuery {
175
+ type?: string | string[];
176
+ category?: string | string[];
177
+ connectionId?: string;
178
+ }
179
+ export interface V2RunEventsWaitRequest {
180
+ cursor?: string;
181
+ timeoutMs?: number;
182
+ type?: string[];
183
+ category?: string[];
184
+ connectionId?: string;
185
+ }
186
+ export interface V2RunEventsWaitResponse {
187
+ data: V2RunEvent | null;
188
+ cursor: string | null;
189
+ timedOut: boolean;
190
+ }
191
+ export type V2RunCommand = V2RunEvent & {
192
+ category: 'command';
193
+ };
194
+ export interface V2RunCommandsListQuery extends V2PageQuery {
195
+ type?: string | string[];
196
+ connectionId?: string;
197
+ }
198
+ export interface V2RunLiveRequest {
199
+ control?: string;
200
+ expiresInSeconds?: number;
201
+ }
202
+ export interface V2RunLiveResponse {
203
+ iframeUrl: string;
204
+ expiresAt: string;
205
+ }
206
+ export interface V2RunRecordingRequest {
207
+ expiresInSeconds?: number;
208
+ }
209
+ export interface V2RunRecordingResponse {
210
+ iframeUrl: string;
211
+ status: string;
212
+ durationMs?: number;
213
+ expiresAt: string;
214
+ }
215
+ export interface V2Invocation {
216
+ id: string;
217
+ runId: string;
218
+ spaceId: string;
219
+ runtimeId: string;
220
+ runtimeType: string;
221
+ type: string;
222
+ status: string;
223
+ result?: JsonValue | null;
224
+ error?: JsonObject | null;
225
+ progress?: JsonObject | null;
226
+ artifactCount: number;
227
+ createdAt: string;
228
+ startedAt?: string | null;
229
+ finishedAt?: string | null;
230
+ durationMs?: number | null;
231
+ metadata?: JsonObject | null;
232
+ }
233
+ export interface V2InvocationResponse {
234
+ data: V2Invocation;
235
+ }
236
+ export interface V2InvocationWaitRequest {
237
+ timeoutMs?: number;
238
+ }
239
+ export interface V2InvocationWaitResponse {
240
+ data: V2Invocation;
241
+ timedOut: boolean;
242
+ }
243
+ export type V2RuntimeInvocationFileInput = {
244
+ storagePath: string;
245
+ name?: string;
246
+ } | {
247
+ fileId: string;
248
+ name?: string;
249
+ };
250
+ interface V2RuntimeInvocationAgentFields {
251
+ target?: JsonObject;
252
+ idempotencyKey?: string;
253
+ outputSchema?: JsonObject;
254
+ toolsetId?: string;
255
+ metadata?: JsonObject;
256
+ files?: V2RuntimeInvocationFileInput[];
257
+ }
258
+ export type V2RuntimeInvocationCreateRequest = {
259
+ provider: 'stagehand';
260
+ method: 'act' | 'observe';
261
+ target?: JsonObject;
262
+ input: JsonObject;
263
+ idempotencyKey?: string;
264
+ metadata?: JsonObject;
265
+ } | {
266
+ provider: 'stagehand';
267
+ method: 'extract';
268
+ target?: JsonObject;
269
+ input?: JsonObject;
270
+ outputSchema?: JsonObject;
271
+ idempotencyKey?: string;
272
+ metadata?: JsonObject;
273
+ } | (V2RuntimeInvocationAgentFields & {
274
+ provider: 'stagehand';
275
+ method: 'agent';
276
+ input: JsonObject;
277
+ config?: JsonObject;
278
+ options?: JsonObject;
279
+ }) | (V2RuntimeInvocationAgentFields & {
280
+ provider: 'browserUse';
281
+ method: 'agent';
282
+ input: JsonObject;
283
+ config?: JsonObject;
284
+ options?: JsonObject;
285
+ }) | {
286
+ provider: 'bctrl';
287
+ method: 'solveCaptcha';
288
+ target?: JsonObject;
289
+ input?: JsonObject;
290
+ idempotencyKey?: string;
291
+ metadata?: JsonObject;
292
+ };
293
+ export interface V2File {
294
+ id: string;
295
+ type: string;
296
+ source: 'upload' | 'runtime' | 'system';
297
+ name: string;
298
+ path: string;
299
+ contentType: string;
300
+ sizeBytes: number;
301
+ spaceId?: string;
302
+ runtimeId?: string | null;
303
+ runId?: string | null;
304
+ metadata?: JsonObject | null;
305
+ createdAt: string;
306
+ expiresAt?: string | null;
307
+ downloadUrl?: string;
308
+ }
309
+ export interface V2FilesListQuery extends V2PageQuery {
310
+ spaceId: string;
311
+ source?: 'upload' | 'runtime' | 'system';
312
+ path?: string;
313
+ prefix?: string;
314
+ query?: string;
315
+ contentType?: string;
316
+ }
317
+ export interface V2FileUpdateRequest {
318
+ name?: string;
319
+ metadata?: JsonObject | null;
320
+ }
321
+ export interface V2FileDeleteResponse {
322
+ success: true;
323
+ }
324
+ export interface V2FileUploadRequest {
325
+ spaceId: string;
326
+ file: Blob;
327
+ name?: string;
328
+ path?: string;
329
+ metadata?: JsonObject;
330
+ }
331
+ export interface V2RunFilesListQuery extends V2PageQuery {
332
+ type?: string | string[];
333
+ }
334
+ export interface V2RunFilesExportRequest {
335
+ format: 'zip';
336
+ name: string;
337
+ filter?: {
338
+ type?: string[];
339
+ };
340
+ }
341
+ export type V2RuntimeFileStageRequest = {
342
+ storagePath: string;
343
+ name?: string;
344
+ } | {
345
+ fileId: string;
346
+ name?: string;
347
+ };
348
+ export interface V2RuntimeStagedFile {
349
+ id: string;
350
+ runtimeId: string;
351
+ runtimePath: string;
352
+ name: string;
353
+ sizeBytes: number;
354
+ expiresAt: string | null;
355
+ }
356
+ export interface V2RuntimeFileUploadRequest {
357
+ file: Blob;
358
+ name?: string;
359
+ storagePath?: string;
360
+ metadata?: JsonObject;
361
+ }
362
+ export interface V2RuntimeFileUploadResponse {
363
+ file: V2File;
364
+ staged: V2RuntimeStagedFile;
365
+ }
366
+ export interface V2RuntimeFileCollectRequest {
367
+ path: string;
368
+ storagePath?: string;
369
+ name?: string;
370
+ artifact?: {
371
+ kind?: string;
372
+ name?: string;
373
+ metadata?: JsonObject;
374
+ };
375
+ }
376
+ export interface BrowserLaunchOptions {
377
+ name: string;
378
+ state?: 'ephemeral' | 'profile';
379
+ metadata?: JsonObject;
380
+ lifecycle?: V2RuntimeLifecycleConfig;
381
+ stealth?: V2BrowserStealth;
382
+ proxy?: V2ProxyInput | null;
383
+ fingerprint?: V2RuntimeFingerprintCreateConfig;
384
+ extensions?: string[];
385
+ }
386
+ export {};
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const BCTRL_PRODUCTION_ORIGIN = "https://api.bctrl.ai";
2
+ export declare function stripTrailingSlash(value: string): string;
3
+ export declare function resolveApiKey(apiKey: string): string;
4
+ export declare function fetchWithTimeout(input: RequestInfo | URL, init?: RequestInit, timeoutMs?: number): Promise<Response>;
package/dist/utils.js ADDED
@@ -0,0 +1,27 @@
1
+ export const BCTRL_PRODUCTION_ORIGIN = 'https://api.bctrl.ai';
2
+ export function stripTrailingSlash(value) {
3
+ return value.replace(/\/+$/, '');
4
+ }
5
+ export function resolveApiKey(apiKey) {
6
+ const trimmed = apiKey.trim();
7
+ if (!trimmed) {
8
+ throw new Error('BCTRL_API_KEY is required. Pass apiKey or set BCTRL_API_KEY.');
9
+ }
10
+ return trimmed;
11
+ }
12
+ export async function fetchWithTimeout(input, init = {}, timeoutMs) {
13
+ if (!timeoutMs) {
14
+ return fetch(input, init);
15
+ }
16
+ const controller = new AbortController();
17
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
18
+ try {
19
+ return await fetch(input, {
20
+ ...init,
21
+ signal: init.signal ?? controller.signal,
22
+ });
23
+ }
24
+ finally {
25
+ clearTimeout(timeout);
26
+ }
27
+ }
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { createRequire } from 'node:module';
2
2
  const require = createRequire(import.meta.url);
3
- const pkg = require('../package.json');
4
- export const SDK_VERSION = pkg.version;
3
+ const manifest = require('../package.json');
4
+ export const SDK_VERSION = manifest.version ?? '0.0.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bctrl/sdk",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "BCTRL SDK - Remote browser automation",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -9,35 +9,11 @@
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
- },
13
- "./puppeteer": {
14
- "types": "./dist/puppeteer.d.ts",
15
- "import": "./dist/puppeteer.js"
16
- },
17
- "./playwright": {
18
- "types": "./dist/playwright.d.ts",
19
- "import": "./dist/playwright.js"
20
- },
21
- "./stagehand": {
22
- "types": "./dist/stagehand.d.ts",
23
- "import": "./dist/stagehand.js"
24
- },
25
- "./selenium": {
26
- "types": "./dist/selenium.d.ts",
27
- "import": "./dist/selenium.js"
28
12
  }
29
13
  },
30
- "scripts": {
31
- "clean": "rm -rf dist",
32
- "build": "pnpm run clean && tsc -p tsconfig.json",
33
- "prepack": "pnpm run build",
34
- "dev": "tsc --watch",
35
- "typecheck": "tsc --noEmit"
36
- },
37
14
  "keywords": [],
38
15
  "author": "",
39
16
  "license": "ISC",
40
- "packageManager": "pnpm@10.12.4",
41
17
  "devDependencies": {
42
18
  "@types/node": "^25.0.3",
43
19
  "@typescript-eslint/eslint-plugin": "^8.56.0",
@@ -46,11 +22,16 @@
46
22
  "tsx": "^4.21.0",
47
23
  "typescript": "^5.9.3"
48
24
  },
49
- "dependencies": {
50
- "@sentry/node": "^10.38.0",
51
- "zod": "^4.2.1"
52
- },
53
25
  "files": [
54
26
  "dist"
55
- ]
56
- }
27
+ ],
28
+ "scripts": {
29
+ "clean": "rm -rf dist",
30
+ "build": "pnpm run clean && tsc -p tsconfig.json",
31
+ "dev": "tsc --watch",
32
+ "test": "tsx --test tests/v2/*.test.ts tests/v2/e2e/*.test.ts",
33
+ "test:v2": "tsx --test tests/v2/*.test.ts tests/v2/e2e/*.test.ts",
34
+ "test:v2:e2e": "BCTRL_E2E=1 tsx --test tests/v2/e2e/**/*.test.ts",
35
+ "typecheck": "tsc --noEmit"
36
+ }
37
+ }
@@ -1 +0,0 @@
1
- export { BrowserUseNamespace } from './namespace.js';
@@ -1,9 +0,0 @@
1
- // ============================================================================
2
- // Browser-use Agent - Autonomous browser automation
3
- // ============================================================================
4
- //
5
- // This module provides the browser-use agent integration for bctrl.
6
- // Browser-use agents can autonomously complete tasks using natural language.
7
- //
8
- // ============================================================================
9
- export { BrowserUseNamespace } from './namespace.js';
@@ -1,39 +0,0 @@
1
- import type { BrowserUseAgentConfig, BrowserUseCodeAgentConfig, BrowserUseAPI, BrowserUseAgent, BrowserUseCodeAgent } from '../../contracts/browser-use.js';
2
- import type { RpcSender } from '../../internal/transport.js';
3
- /**
4
- * Browser-use namespace - provides agent and codeAgent factory methods.
5
- */
6
- export declare class BrowserUseNamespace implements BrowserUseAPI {
7
- private sendRpc;
8
- private getActivePageId;
9
- constructor(sendRpc: RpcSender, getActivePageId: () => string | undefined);
10
- /**
11
- * Create a reusable agent for natural language task execution.
12
- * The agent can be used multiple times with different tasks.
13
- *
14
- * @example
15
- * const agent = session.browserUse.agent({
16
- * llm: "gpt-4o",
17
- * useVision: true,
18
- * maxSteps: 20,
19
- * });
20
- *
21
- * // Execute multiple tasks with the same agent
22
- * const result1 = await agent.execute("Search for latest AI news");
23
- * const result2 = await agent.execute("Find pricing information", { maxSteps: 10 });
24
- */
25
- agent(config?: BrowserUseAgentConfig): BrowserUseAgent;
26
- /**
27
- * Create a reusable code agent for code-based automation.
28
- * Code agents generate and execute code to accomplish tasks.
29
- *
30
- * @example
31
- * const codeAgent = session.browserUse.codeAgent({
32
- * llm: "gpt-4o",
33
- * });
34
- *
35
- * // Execute tasks with the code agent
36
- * const result = await codeAgent.execute("Fill out the registration form");
37
- */
38
- codeAgent(config?: BrowserUseCodeAgentConfig): BrowserUseCodeAgent;
39
- }
@@ -1,93 +0,0 @@
1
- // ============================================================================
2
- // BrowserUseNamespace - Shared Browser-use agent methods for all drivers
3
- // ============================================================================
4
- //
5
- // This class provides the `.browserUse` namespace on driver sessions.
6
- // It creates Browser-use agents that can autonomously complete tasks.
7
- //
8
- // Usage (consistent with Stagehand agent pattern):
9
- // const session = await bctrl.browser('my-scraper').connect.puppeteer();
10
- //
11
- // // Create a reusable agent with configuration
12
- // const agent = session.browserUse.agent({
13
- // llm: "gpt-4o",
14
- // useVision: true,
15
- // });
16
- //
17
- // // Execute tasks with the agent
18
- // const result = await agent.execute("Search for AI news and summarize");
19
- // const result2 = await agent.execute("Find pricing information", { maxSteps: 10 });
20
- //
21
- // // Code agent works similarly
22
- // const codeAgent = session.browserUse.codeAgent({ llm: "gpt-4o" });
23
- // const codeResult = await codeAgent.execute("Fill out the form with test data");
24
- //
25
- // ============================================================================
26
- /**
27
- * Browser-use namespace - provides agent and codeAgent factory methods.
28
- */
29
- export class BrowserUseNamespace {
30
- sendRpc;
31
- getActivePageId;
32
- constructor(sendRpc, getActivePageId) {
33
- this.sendRpc = sendRpc;
34
- this.getActivePageId = getActivePageId;
35
- }
36
- /**
37
- * Create a reusable agent for natural language task execution.
38
- * The agent can be used multiple times with different tasks.
39
- *
40
- * @example
41
- * const agent = session.browserUse.agent({
42
- * llm: "gpt-4o",
43
- * useVision: true,
44
- * maxSteps: 20,
45
- * });
46
- *
47
- * // Execute multiple tasks with the same agent
48
- * const result1 = await agent.execute("Search for latest AI news");
49
- * const result2 = await agent.execute("Find pricing information", { maxSteps: 10 });
50
- */
51
- agent(config) {
52
- const agentConfig = config || {};
53
- const pageId = agentConfig.pageId || this.getActivePageId();
54
- const rpc = this.sendRpc;
55
- return {
56
- execute: async (task, options) => {
57
- const executeOptions = {
58
- task,
59
- ...(options?.maxSteps !== undefined ? { maxSteps: options.maxSteps } : {}),
60
- ...(options?.tools !== undefined ? { tools: options.tools } : {}),
61
- };
62
- return rpc('browserUse', 'agent.execute', [agentConfig, executeOptions], { pageId });
63
- },
64
- };
65
- }
66
- /**
67
- * Create a reusable code agent for code-based automation.
68
- * Code agents generate and execute code to accomplish tasks.
69
- *
70
- * @example
71
- * const codeAgent = session.browserUse.codeAgent({
72
- * llm: "gpt-4o",
73
- * });
74
- *
75
- * // Execute tasks with the code agent
76
- * const result = await codeAgent.execute("Fill out the registration form");
77
- */
78
- codeAgent(config) {
79
- const agentConfig = config || {};
80
- const pageId = agentConfig.pageId || this.getActivePageId();
81
- const rpc = this.sendRpc;
82
- return {
83
- execute: async (task, options) => {
84
- const executeOptions = {
85
- task,
86
- ...(options?.maxSteps !== undefined ? { maxSteps: options.maxSteps } : {}),
87
- ...(options?.tools !== undefined ? { tools: options.tools } : {}),
88
- };
89
- return rpc('browserUse', 'codeAgent.execute', [agentConfig, executeOptions], { pageId });
90
- },
91
- };
92
- }
93
- }
@@ -1,2 +0,0 @@
1
- export { StagehandNamespace, StagehandAgent } from './stagehand/index.js';
2
- export { BrowserUseNamespace } from './browser-use/index.js';
@@ -1,17 +0,0 @@
1
- // ============================================================================
2
- // AI Agents - Unified AI-powered browser automation
3
- // ============================================================================
4
- //
5
- // This module provides all AI agent integrations for bctrl:
6
- //
7
- // - Stagehand: AI-powered browser automation with act, extract, observe
8
- // - Browser-use: Autonomous agents for natural language task execution
9
- //
10
- // These agents work across all drivers (Puppeteer, Playwright, Selenium, Stagehand)
11
- // through the `.stagehand` and `.browserUse` namespaces on sessions.
12
- //
13
- // ============================================================================
14
- // Stagehand AI exports
15
- export { StagehandNamespace, StagehandAgent } from './stagehand/index.js';
16
- // Browser-use exports
17
- export { BrowserUseNamespace } from './browser-use/index.js';