@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.
- package/README.md +24 -29
- package/dist/bctrl.d.ts +22 -36
- package/dist/bctrl.js +40 -75
- package/dist/browsers.d.ts +24 -0
- package/dist/browsers.js +82 -0
- package/dist/errors.d.ts +49 -43
- package/dist/errors.js +83 -120
- package/dist/files.d.ts +31 -0
- package/dist/files.js +97 -0
- package/dist/http.d.ts +18 -0
- package/dist/http.js +135 -0
- package/dist/index.d.ts +9 -12
- package/dist/index.js +8 -23
- package/dist/invocations.d.ts +24 -0
- package/dist/invocations.js +66 -0
- package/dist/pagination.d.ts +2 -0
- package/dist/pagination.js +13 -0
- package/dist/runs.d.ts +38 -0
- package/dist/runs.js +99 -0
- package/dist/runtimes.d.ts +73 -0
- package/dist/runtimes.js +205 -0
- package/dist/spaces.d.ts +41 -0
- package/dist/spaces.js +96 -0
- package/dist/types.d.ts +386 -0
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +27 -0
- package/dist/version.js +2 -2
- package/package.json +12 -31
- package/dist/agents/browser-use/index.d.ts +0 -1
- package/dist/agents/browser-use/index.js +0 -9
- package/dist/agents/browser-use/namespace.d.ts +0 -39
- package/dist/agents/browser-use/namespace.js +0 -93
- package/dist/agents/index.d.ts +0 -2
- package/dist/agents/index.js +0 -17
- package/dist/agents/stagehand/core.d.ts +0 -93
- package/dist/agents/stagehand/core.js +0 -144
- package/dist/agents/stagehand/index.d.ts +0 -3
- package/dist/agents/stagehand/index.js +0 -24
- package/dist/agents/stagehand/namespace.d.ts +0 -51
- package/dist/agents/stagehand/namespace.js +0 -65
- package/dist/ai-credentials/client.d.ts +0 -12
- package/dist/ai-credentials/client.js +0 -70
- package/dist/ai-credentials/index.d.ts +0 -1
- package/dist/ai-credentials/index.js +0 -1
- package/dist/base/event-binding.d.ts +0 -7
- package/dist/base/event-binding.js +0 -23
- package/dist/base/types.d.ts +0 -109
- package/dist/base/types.js +0 -4
- package/dist/browser-extensions/client.d.ts +0 -15
- package/dist/browser-extensions/client.js +0 -72
- package/dist/browser-extensions/index.d.ts +0 -2
- package/dist/browser-extensions/index.js +0 -1
- package/dist/browser-profiles/client.d.ts +0 -11
- package/dist/browser-profiles/client.js +0 -63
- package/dist/browser-profiles/index.d.ts +0 -1
- package/dist/browser-profiles/index.js +0 -1
- package/dist/captcha/index.d.ts +0 -1
- package/dist/captcha/index.js +0 -1
- package/dist/captcha/namespace.d.ts +0 -34
- package/dist/captcha/namespace.js +0 -41
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.js +0 -1
- package/dist/client/rpc.d.ts +0 -83
- package/dist/client/rpc.js +0 -354
- package/dist/config.d.ts +0 -5
- package/dist/config.js +0 -28
- package/dist/constants/browser.d.ts +0 -2
- package/dist/constants/browser.js +0 -1
- package/dist/contracts/agent-tools.d.ts +0 -45
- package/dist/contracts/agent-tools.js +0 -31
- package/dist/contracts/automation.d.ts +0 -265
- package/dist/contracts/automation.js +0 -109
- package/dist/contracts/browser-management.d.ts +0 -179
- package/dist/contracts/browser-management.js +0 -95
- package/dist/contracts/browser-use.d.ts +0 -136
- package/dist/contracts/browser-use.js +0 -93
- package/dist/contracts/captcha.d.ts +0 -114
- package/dist/contracts/captcha.js +0 -40
- package/dist/contracts/desktop.d.ts +0 -223
- package/dist/contracts/desktop.js +0 -121
- package/dist/contracts/drivers/playwright.d.ts +0 -2008
- package/dist/contracts/drivers/playwright.js +0 -2033
- package/dist/contracts/drivers/puppeteer.d.ts +0 -1221
- package/dist/contracts/drivers/puppeteer.js +0 -941
- package/dist/contracts/drivers/selenium.d.ts +0 -156
- package/dist/contracts/drivers/selenium.js +0 -61
- package/dist/contracts/drivers/stagehand.d.ts +0 -155
- package/dist/contracts/drivers/stagehand.js +0 -7
- package/dist/contracts/extensions.d.ts +0 -13
- package/dist/contracts/extensions.js +0 -9
- package/dist/contracts/index.d.ts +0 -13
- package/dist/contracts/index.js +0 -13
- package/dist/contracts/public-api.d.ts +0 -360
- package/dist/contracts/public-api.js +0 -17
- package/dist/contracts/runtime.d.ts +0 -81
- package/dist/contracts/runtime.js +0 -16
- package/dist/contracts/stagehand.d.ts +0 -253
- package/dist/contracts/stagehand.js +0 -145
- package/dist/contracts/storage.d.ts +0 -51
- package/dist/contracts/storage.js +0 -56
- package/dist/contracts/vault.d.ts +0 -119
- package/dist/contracts/vault.js +0 -112
- package/dist/contracts/version.d.ts +0 -3
- package/dist/contracts/version.js +0 -16
- package/dist/desktop.d.ts +0 -2
- package/dist/desktop.js +0 -3
- package/dist/drivers/desktop/index.d.ts +0 -65
- package/dist/drivers/desktop/index.js +0 -68
- package/dist/drivers/desktop/session.d.ts +0 -313
- package/dist/drivers/desktop/session.js +0 -432
- package/dist/drivers/playwright/event-emitter.d.ts +0 -160
- package/dist/drivers/playwright/event-emitter.js +0 -297
- package/dist/drivers/playwright/generated/api-request-context.d.ts +0 -137
- package/dist/drivers/playwright/generated/api-request-context.js +0 -154
- package/dist/drivers/playwright/generated/api-response.d.ts +0 -119
- package/dist/drivers/playwright/generated/api-response.js +0 -123
- package/dist/drivers/playwright/generated/browser-context.d.ts +0 -284
- package/dist/drivers/playwright/generated/browser-context.js +0 -458
- package/dist/drivers/playwright/generated/browser.d.ts +0 -120
- package/dist/drivers/playwright/generated/browser.js +0 -151
- package/dist/drivers/playwright/generated/clock.d.ts +0 -80
- package/dist/drivers/playwright/generated/clock.js +0 -94
- package/dist/drivers/playwright/generated/console-message.d.ts +0 -94
- package/dist/drivers/playwright/generated/console-message.js +0 -89
- package/dist/drivers/playwright/generated/coverage.d.ts +0 -57
- package/dist/drivers/playwright/generated/coverage.js +0 -66
- package/dist/drivers/playwright/generated/dialog.d.ts +0 -79
- package/dist/drivers/playwright/generated/dialog.js +0 -80
- package/dist/drivers/playwright/generated/element-handle.d.ts +0 -399
- package/dist/drivers/playwright/generated/element-handle.js +0 -501
- package/dist/drivers/playwright/generated/frame-locator.d.ts +0 -34
- package/dist/drivers/playwright/generated/frame-locator.js +0 -63
- package/dist/drivers/playwright/generated/frame.d.ts +0 -557
- package/dist/drivers/playwright/generated/frame.js +0 -634
- package/dist/drivers/playwright/generated/js-handle.d.ts +0 -72
- package/dist/drivers/playwright/generated/js-handle.js +0 -92
- package/dist/drivers/playwright/generated/keyboard.d.ts +0 -103
- package/dist/drivers/playwright/generated/keyboard.js +0 -113
- package/dist/drivers/playwright/generated/locator.d.ts +0 -795
- package/dist/drivers/playwright/generated/locator.js +0 -974
- package/dist/drivers/playwright/generated/mouse.d.ts +0 -97
- package/dist/drivers/playwright/generated/mouse.js +0 -109
- package/dist/drivers/playwright/generated/page.d.ts +0 -762
- package/dist/drivers/playwright/generated/page.js +0 -988
- package/dist/drivers/playwright/generated/touchscreen.d.ts +0 -34
- package/dist/drivers/playwright/generated/touchscreen.js +0 -37
- package/dist/drivers/playwright/generated/tracing.d.ts +0 -78
- package/dist/drivers/playwright/generated/tracing.js +0 -80
- package/dist/drivers/playwright/generated/worker.d.ts +0 -53
- package/dist/drivers/playwright/generated/worker.js +0 -59
- package/dist/drivers/playwright/index.d.ts +0 -19
- package/dist/drivers/playwright/index.js +0 -20
- package/dist/drivers/playwright/remote-base.d.ts +0 -62
- package/dist/drivers/playwright/remote-base.js +0 -86
- package/dist/drivers/playwright/types.d.ts +0 -148
- package/dist/drivers/playwright/types.js +0 -8
- package/dist/drivers/puppeteer/errors.d.ts +0 -50
- package/dist/drivers/puppeteer/errors.js +0 -71
- package/dist/drivers/puppeteer/event-emitter.d.ts +0 -145
- package/dist/drivers/puppeteer/event-emitter.js +0 -259
- package/dist/drivers/puppeteer/generated/accessibility.d.ts +0 -77
- package/dist/drivers/puppeteer/generated/accessibility.js +0 -74
- package/dist/drivers/puppeteer/generated/browser-context.d.ts +0 -116
- package/dist/drivers/puppeteer/generated/browser-context.js +0 -168
- package/dist/drivers/puppeteer/generated/browser.d.ts +0 -169
- package/dist/drivers/puppeteer/generated/browser.js +0 -246
- package/dist/drivers/puppeteer/generated/console-message.d.ts +0 -54
- package/dist/drivers/puppeteer/generated/console-message.js +0 -69
- package/dist/drivers/puppeteer/generated/coverage.d.ts +0 -49
- package/dist/drivers/puppeteer/generated/coverage.js +0 -57
- package/dist/drivers/puppeteer/generated/dialog.d.ts +0 -46
- package/dist/drivers/puppeteer/generated/dialog.js +0 -60
- package/dist/drivers/puppeteer/generated/element-handle.d.ts +0 -261
- package/dist/drivers/puppeteer/generated/element-handle.js +0 -341
- package/dist/drivers/puppeteer/generated/file-chooser.d.ts +0 -34
- package/dist/drivers/puppeteer/generated/file-chooser.js +0 -43
- package/dist/drivers/puppeteer/generated/frame.d.ts +0 -221
- package/dist/drivers/puppeteer/generated/frame.js +0 -302
- package/dist/drivers/puppeteer/generated/http-request.d.ts +0 -195
- package/dist/drivers/puppeteer/generated/http-request.js +0 -243
- package/dist/drivers/puppeteer/generated/http-response.d.ts +0 -142
- package/dist/drivers/puppeteer/generated/http-response.js +0 -169
- package/dist/drivers/puppeteer/generated/js-handle.d.ts +0 -104
- package/dist/drivers/puppeteer/generated/js-handle.js +0 -125
- package/dist/drivers/puppeteer/generated/keyboard.d.ts +0 -79
- package/dist/drivers/puppeteer/generated/keyboard.js +0 -89
- package/dist/drivers/puppeteer/generated/locator.d.ts +0 -141
- package/dist/drivers/puppeteer/generated/locator.js +0 -164
- package/dist/drivers/puppeteer/generated/mouse.d.ts +0 -74
- package/dist/drivers/puppeteer/generated/mouse.js +0 -94
- package/dist/drivers/puppeteer/generated/page.d.ts +0 -604
- package/dist/drivers/puppeteer/generated/page.js +0 -776
- package/dist/drivers/puppeteer/generated/target.d.ts +0 -105
- package/dist/drivers/puppeteer/generated/target.js +0 -123
- package/dist/drivers/puppeteer/generated/touchscreen.d.ts +0 -87
- package/dist/drivers/puppeteer/generated/touchscreen.js +0 -103
- package/dist/drivers/puppeteer/generated/tracing.d.ts +0 -38
- package/dist/drivers/puppeteer/generated/tracing.js +0 -43
- package/dist/drivers/puppeteer/generated/web-worker.d.ts +0 -63
- package/dist/drivers/puppeteer/generated/web-worker.js +0 -73
- package/dist/drivers/puppeteer/index.d.ts +0 -21
- package/dist/drivers/puppeteer/index.js +0 -23
- package/dist/drivers/puppeteer/remote-base.d.ts +0 -57
- package/dist/drivers/puppeteer/remote-base.js +0 -79
- package/dist/drivers/puppeteer/types.d.ts +0 -178
- package/dist/drivers/puppeteer/types.js +0 -8
- package/dist/drivers/selenium/driver.d.ts +0 -28
- package/dist/drivers/selenium/driver.js +0 -169
- package/dist/drivers/selenium/element.d.ts +0 -34
- package/dist/drivers/selenium/element.js +0 -73
- package/dist/drivers/selenium/index.d.ts +0 -3
- package/dist/drivers/selenium/index.js +0 -5
- package/dist/drivers/selenium/types.d.ts +0 -2
- package/dist/drivers/selenium/types.js +0 -12
- package/dist/drivers/stagehand/generated/context.d.ts +0 -127
- package/dist/drivers/stagehand/generated/context.js +0 -153
- package/dist/drivers/stagehand/generated/locator.d.ts +0 -324
- package/dist/drivers/stagehand/generated/locator.js +0 -368
- package/dist/drivers/stagehand/generated/page.d.ts +0 -377
- package/dist/drivers/stagehand/generated/page.js +0 -439
- package/dist/drivers/stagehand/generated/response.d.ts +0 -197
- package/dist/drivers/stagehand/generated/response.js +0 -232
- package/dist/drivers/stagehand/index.d.ts +0 -5
- package/dist/drivers/stagehand/index.js +0 -8
- package/dist/drivers/stagehand/types.d.ts +0 -1
- package/dist/drivers/stagehand/types.js +0 -7
- package/dist/extensions/client.d.ts +0 -47
- package/dist/extensions/client.js +0 -154
- package/dist/extensions/index.d.ts +0 -1
- package/dist/extensions/index.js +0 -1
- package/dist/internal/dev-client.d.ts +0 -5
- package/dist/internal/dev-client.js +0 -9
- package/dist/internal/rpc-targets.d.ts +0 -17
- package/dist/internal/rpc-targets.js +0 -58
- package/dist/internal/serialization.d.ts +0 -32
- package/dist/internal/serialization.js +0 -42
- package/dist/internal/transport.d.ts +0 -24
- package/dist/internal/transport.js +0 -29
- package/dist/playwright.d.ts +0 -1
- package/dist/playwright.js +0 -2
- package/dist/puppeteer.d.ts +0 -1
- package/dist/puppeteer.js +0 -2
- package/dist/selenium.d.ts +0 -1
- package/dist/selenium.js +0 -2
- package/dist/stagehand.d.ts +0 -1
- package/dist/stagehand.js +0 -2
- package/dist/storage/client.d.ts +0 -151
- package/dist/storage/client.js +0 -329
- package/dist/storage/index.d.ts +0 -2
- package/dist/storage/index.js +0 -4
- package/dist/telemetry.d.ts +0 -18
- package/dist/telemetry.js +0 -93
- package/dist/updates/client.d.ts +0 -8
- package/dist/updates/client.js +0 -128
- package/dist/updates/index.d.ts +0 -1
- package/dist/updates/index.js +0 -1
- package/dist/utils/http.d.ts +0 -39
- package/dist/utils/http.js +0 -88
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.js +0 -4
- package/dist/utils/logger.d.ts +0 -27
- package/dist/utils/logger.js +0 -74
- package/dist/utils/schema.d.ts +0 -17
- package/dist/utils/schema.js +0 -31
- package/dist/utils/url.d.ts +0 -5
- package/dist/utils/url.js +0 -7
- package/dist/vault/client.d.ts +0 -43
- package/dist/vault/client.js +0 -123
- package/dist/vault/index.d.ts +0 -1
- package/dist/vault/index.js +0 -1
- package/dist/workspaces/browser-runtime.d.ts +0 -251
- package/dist/workspaces/browser-runtime.js +0 -1025
- package/dist/workspaces/client.d.ts +0 -48
- package/dist/workspaces/client.js +0 -222
- package/dist/workspaces/index.d.ts +0 -2
- package/dist/workspaces/index.js +0 -2
- package/dist/workspaces/runtime-event-pump.d.ts +0 -65
- package/dist/workspaces/runtime-event-pump.js +0 -716
package/dist/errors.js
CHANGED
|
@@ -1,157 +1,120 @@
|
|
|
1
|
-
// ============================================================================
|
|
2
|
-
// SDK Error Hierarchy
|
|
3
|
-
// ============================================================================
|
|
4
|
-
//
|
|
5
|
-
// User-facing error classes oriented around what action to take:
|
|
6
|
-
// - AutomationError → fix selectors, script code, or arguments
|
|
7
|
-
// - SessionError → recreate session, check if browser/host is up
|
|
8
|
-
// - TimeoutError → increase timeout or retry
|
|
9
|
-
// - AuthenticationError → check/refresh API key
|
|
10
|
-
// ============================================================================
|
|
11
|
-
import { AutomationDiagnosticSchema } from './contracts/automation.js';
|
|
12
|
-
function isRecord(value) {
|
|
13
|
-
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
14
|
-
}
|
|
15
|
-
function isAutomationDiagnostic(value) {
|
|
16
|
-
return AutomationDiagnosticSchema.safeParse(value).success;
|
|
17
|
-
}
|
|
18
|
-
function getContextHint(context) {
|
|
19
|
-
if (!context)
|
|
20
|
-
return undefined;
|
|
21
|
-
const hint = context.hint;
|
|
22
|
-
return typeof hint === 'string' && hint.length > 0 ? hint : undefined;
|
|
23
|
-
}
|
|
24
|
-
function getContextDiagnostic(context) {
|
|
25
|
-
if (!context)
|
|
26
|
-
return undefined;
|
|
27
|
-
const diagnostic = context.diagnostic;
|
|
28
|
-
return isAutomationDiagnostic(diagnostic) ? diagnostic : undefined;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Base error class for all bctrl SDK errors.
|
|
32
|
-
* Carries a fine-grained `.code` and optional `.context` metadata.
|
|
33
|
-
*/
|
|
34
1
|
export class BctrlError extends Error {
|
|
35
2
|
code;
|
|
36
3
|
context;
|
|
37
4
|
constructor(message, code, context) {
|
|
38
5
|
super(message);
|
|
6
|
+
this.name = 'BctrlError';
|
|
39
7
|
this.code = code;
|
|
40
8
|
this.context = context;
|
|
41
|
-
this.name = 'BctrlError';
|
|
42
|
-
if (Error.captureStackTrace)
|
|
43
|
-
Error.captureStackTrace(this, this.constructor);
|
|
44
9
|
}
|
|
45
|
-
/** Serialize for structured loggers (pino, winston) and JSON.stringify() */
|
|
46
10
|
toJSON() {
|
|
47
11
|
return {
|
|
48
12
|
name: this.name,
|
|
49
13
|
message: this.message,
|
|
50
14
|
code: this.code,
|
|
51
|
-
context: this.context,
|
|
52
|
-
stack: this.stack,
|
|
15
|
+
...(this.context ? { context: this.context } : {}),
|
|
53
16
|
};
|
|
54
17
|
}
|
|
55
18
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
constructor(message, code = 'DRIVER_ERROR', context) {
|
|
19
|
+
export class BctrlApiError extends BctrlError {
|
|
20
|
+
constructor(message, code = 'api.error', context) {
|
|
59
21
|
super(message, code, context);
|
|
60
|
-
this.name = '
|
|
22
|
+
this.name = 'BctrlApiError';
|
|
61
23
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return getContextHint(this.context);
|
|
24
|
+
get status() {
|
|
25
|
+
return typeof this.context?.status === 'number' ? this.context.status : undefined;
|
|
65
26
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return getContextDiagnostic(this.context);
|
|
27
|
+
get requestId() {
|
|
28
|
+
return typeof this.context?.requestId === 'string' ? this.context.requestId : undefined;
|
|
69
29
|
}
|
|
70
30
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
constructor(message, code = 'SESSION_ERROR', context) {
|
|
31
|
+
export class BctrlAuthenticationError extends BctrlApiError {
|
|
32
|
+
constructor(message, code = 'auth.error', context) {
|
|
74
33
|
super(message, code, context);
|
|
75
|
-
this.name = '
|
|
34
|
+
this.name = 'BctrlAuthenticationError';
|
|
76
35
|
}
|
|
77
36
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.name = 'TimeoutError';
|
|
37
|
+
export class BctrlPermissionError extends BctrlApiError {
|
|
38
|
+
constructor(message, code = 'permission.denied', context) {
|
|
39
|
+
super(message, code, context);
|
|
40
|
+
this.name = 'BctrlPermissionError';
|
|
83
41
|
}
|
|
84
42
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this.name = 'AuthenticationError';
|
|
43
|
+
export class BctrlNotFoundError extends BctrlApiError {
|
|
44
|
+
constructor(message, code = 'resource.not_found', context) {
|
|
45
|
+
super(message, code, context);
|
|
46
|
+
this.name = 'BctrlNotFoundError';
|
|
90
47
|
}
|
|
91
48
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
export function fromErrorResponse(message, code, context) {
|
|
97
|
-
switch (code) {
|
|
98
|
-
case 'DRIVER_ERROR':
|
|
99
|
-
case 'EXECUTION_ERROR':
|
|
100
|
-
case 'VALIDATION_ERROR':
|
|
101
|
-
return new AutomationError(message, code, context);
|
|
102
|
-
case 'SESSION_ERROR':
|
|
103
|
-
case 'NOT_FOUND':
|
|
104
|
-
case 'SESSION_NOT_FOUND':
|
|
105
|
-
case 'DRIVER_NOT_CONNECTED':
|
|
106
|
-
case 'CONNECTION_ERROR':
|
|
107
|
-
case 'RPC_ERROR':
|
|
108
|
-
return new SessionError(message, code, context);
|
|
109
|
-
case 'TIMEOUT_ERROR':
|
|
110
|
-
case 'TIMEOUT':
|
|
111
|
-
return new TimeoutError(message, context);
|
|
112
|
-
case 'AUTH_ERROR':
|
|
113
|
-
return new AuthenticationError(message, context);
|
|
114
|
-
default:
|
|
115
|
-
return new BctrlError(message, code || 'UNKNOWN_ERROR', context);
|
|
49
|
+
export class BctrlConflictError extends BctrlApiError {
|
|
50
|
+
constructor(message, code = 'resource.conflict', context) {
|
|
51
|
+
super(message, code, context);
|
|
52
|
+
this.name = 'BctrlConflictError';
|
|
116
53
|
}
|
|
117
54
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
// instanceof fails (bundler duplication, multiple package copies in monorepos).
|
|
124
|
-
export function isBctrlError(error) {
|
|
125
|
-
return error instanceof BctrlError || (error instanceof Error && 'code' in error && typeof error.code === 'string'
|
|
126
|
-
&& (error.name === 'BctrlError' || error.name === 'AutomationError'
|
|
127
|
-
|| error.name === 'SessionError' || error.name === 'TimeoutError'
|
|
128
|
-
|| error.name === 'AuthenticationError'));
|
|
55
|
+
export class BctrlRateLimitError extends BctrlApiError {
|
|
56
|
+
constructor(message, code = 'rate_limit.exceeded', context) {
|
|
57
|
+
super(message, code, context);
|
|
58
|
+
this.name = 'BctrlRateLimitError';
|
|
59
|
+
}
|
|
129
60
|
}
|
|
130
|
-
export
|
|
131
|
-
|
|
61
|
+
export class BctrlValidationError extends BctrlApiError {
|
|
62
|
+
constructor(message, code = 'validation.error', context) {
|
|
63
|
+
super(message, code, context);
|
|
64
|
+
this.name = 'BctrlValidationError';
|
|
65
|
+
}
|
|
132
66
|
}
|
|
133
|
-
export
|
|
134
|
-
|
|
67
|
+
export class BctrlNetworkError extends BctrlError {
|
|
68
|
+
constructor(message, context) {
|
|
69
|
+
super(message, 'network.error', context);
|
|
70
|
+
this.name = 'BctrlNetworkError';
|
|
71
|
+
}
|
|
135
72
|
}
|
|
136
|
-
export
|
|
137
|
-
|
|
73
|
+
export class BctrlNotReadyError extends BctrlError {
|
|
74
|
+
constructor(message, context) {
|
|
75
|
+
super(message, 'runtime.not_ready', context);
|
|
76
|
+
this.name = 'BctrlNotReadyError';
|
|
77
|
+
}
|
|
138
78
|
}
|
|
139
|
-
export
|
|
140
|
-
|
|
79
|
+
export class BctrlUnsupportedError extends BctrlError {
|
|
80
|
+
constructor(message, context) {
|
|
81
|
+
super(message, 'sdk.unsupported', context);
|
|
82
|
+
this.name = 'BctrlUnsupportedError';
|
|
83
|
+
}
|
|
141
84
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
85
|
+
export function createV2HttpError(input) {
|
|
86
|
+
const context = {
|
|
87
|
+
status: input.status,
|
|
88
|
+
requestId: input.requestId,
|
|
89
|
+
body: input.body,
|
|
90
|
+
};
|
|
91
|
+
const code = input.code;
|
|
92
|
+
if (code)
|
|
93
|
+
context.code = code;
|
|
94
|
+
if (input.status === 401) {
|
|
95
|
+
return new BctrlAuthenticationError(input.message, code, context);
|
|
96
|
+
}
|
|
97
|
+
if (input.status === 403) {
|
|
98
|
+
return new BctrlPermissionError(input.message, code, context);
|
|
99
|
+
}
|
|
100
|
+
if (input.status === 404) {
|
|
101
|
+
return new BctrlNotFoundError(input.message, code, context);
|
|
102
|
+
}
|
|
103
|
+
if (input.status === 409) {
|
|
104
|
+
return new BctrlConflictError(input.message, code, context);
|
|
105
|
+
}
|
|
106
|
+
if (input.status === 422 || input.status === 400) {
|
|
107
|
+
return new BctrlValidationError(input.message, code, context);
|
|
108
|
+
}
|
|
109
|
+
if (input.status === 429) {
|
|
110
|
+
return new BctrlRateLimitError(input.message, code, context);
|
|
111
|
+
}
|
|
112
|
+
return new BctrlApiError(input.message, code, context);
|
|
149
113
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
return getContextDiagnostic(error.context);
|
|
114
|
+
export function isControllerBusy(error) {
|
|
115
|
+
if (!(error instanceof BctrlError)) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
const code = error.code.toLowerCase();
|
|
119
|
+
return code.includes('controller') && code.includes('busy');
|
|
157
120
|
}
|
package/dist/files.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { V2HttpClient } from './http.js';
|
|
2
|
+
import type { V2File, V2FileDeleteResponse, V2FilesListQuery, V2FileUpdateRequest, V2FileUploadRequest, V2ListEnvelope, V2RunFilesExportRequest, V2RunFilesListQuery } from './types.js';
|
|
3
|
+
export declare class V2FileResource {
|
|
4
|
+
private readonly http;
|
|
5
|
+
readonly data: V2File;
|
|
6
|
+
constructor(http: V2HttpClient, data: V2File);
|
|
7
|
+
get id(): string;
|
|
8
|
+
refresh(): Promise<V2FileResource>;
|
|
9
|
+
content(): Promise<Response>;
|
|
10
|
+
update(request: V2FileUpdateRequest): Promise<V2FileResource>;
|
|
11
|
+
delete(): Promise<V2FileDeleteResponse>;
|
|
12
|
+
}
|
|
13
|
+
export declare class V2FilesClient {
|
|
14
|
+
private readonly http;
|
|
15
|
+
constructor(http: V2HttpClient);
|
|
16
|
+
list(query: V2FilesListQuery): Promise<V2ListEnvelope<V2File>>;
|
|
17
|
+
iter(query: V2FilesListQuery): AsyncGenerator<V2File, void, undefined>;
|
|
18
|
+
get(id: string): Promise<V2FileResource>;
|
|
19
|
+
update(id: string, request: V2FileUpdateRequest): Promise<V2FileResource>;
|
|
20
|
+
content(id: string): Promise<Response>;
|
|
21
|
+
delete(id: string): Promise<V2FileDeleteResponse>;
|
|
22
|
+
upload(request: V2FileUploadRequest): Promise<V2FileResource>;
|
|
23
|
+
}
|
|
24
|
+
export declare class V2RunFilesClient {
|
|
25
|
+
private readonly http;
|
|
26
|
+
private readonly runId;
|
|
27
|
+
constructor(http: V2HttpClient, runId: string);
|
|
28
|
+
list(query?: V2RunFilesListQuery): Promise<V2ListEnvelope<V2File>>;
|
|
29
|
+
iter(query?: V2RunFilesListQuery): AsyncGenerator<V2File, void, undefined>;
|
|
30
|
+
export(request: V2RunFilesExportRequest): Promise<V2FileResource>;
|
|
31
|
+
}
|
package/dist/files.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { iterateV2Pages } from './pagination.js';
|
|
2
|
+
export class V2FileResource {
|
|
3
|
+
http;
|
|
4
|
+
data;
|
|
5
|
+
constructor(http, data) {
|
|
6
|
+
this.http = http;
|
|
7
|
+
this.data = data;
|
|
8
|
+
}
|
|
9
|
+
get id() {
|
|
10
|
+
return this.data.id;
|
|
11
|
+
}
|
|
12
|
+
refresh() {
|
|
13
|
+
return new V2FilesClient(this.http).get(this.id);
|
|
14
|
+
}
|
|
15
|
+
async content() {
|
|
16
|
+
return new V2FilesClient(this.http).content(this.id);
|
|
17
|
+
}
|
|
18
|
+
async update(request) {
|
|
19
|
+
return new V2FilesClient(this.http).update(this.id, request);
|
|
20
|
+
}
|
|
21
|
+
delete() {
|
|
22
|
+
return new V2FilesClient(this.http).delete(this.id);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class V2FilesClient {
|
|
26
|
+
http;
|
|
27
|
+
constructor(http) {
|
|
28
|
+
this.http = http;
|
|
29
|
+
}
|
|
30
|
+
list(query) {
|
|
31
|
+
return this.http.request('/files', { query });
|
|
32
|
+
}
|
|
33
|
+
iter(query) {
|
|
34
|
+
return iterateV2Pages(query, (pageQuery) => this.list(pageQuery));
|
|
35
|
+
}
|
|
36
|
+
async get(id) {
|
|
37
|
+
const file = await this.http.request(`/files/${encodeURIComponent(id)}`);
|
|
38
|
+
return new V2FileResource(this.http, file);
|
|
39
|
+
}
|
|
40
|
+
async update(id, request) {
|
|
41
|
+
const file = await this.http.request(`/files/${encodeURIComponent(id)}`, {
|
|
42
|
+
method: 'PATCH',
|
|
43
|
+
body: request,
|
|
44
|
+
});
|
|
45
|
+
return new V2FileResource(this.http, file);
|
|
46
|
+
}
|
|
47
|
+
content(id) {
|
|
48
|
+
return this.http.raw(`/files/${encodeURIComponent(id)}/content`);
|
|
49
|
+
}
|
|
50
|
+
delete(id) {
|
|
51
|
+
return this.http.request(`/files/${encodeURIComponent(id)}`, {
|
|
52
|
+
method: 'DELETE',
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async upload(request) {
|
|
56
|
+
const form = new FormData();
|
|
57
|
+
if (request.name) {
|
|
58
|
+
form.set('file', request.file, request.name);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
form.set('file', request.file);
|
|
62
|
+
}
|
|
63
|
+
if (request.name)
|
|
64
|
+
form.set('name', request.name);
|
|
65
|
+
if (request.path)
|
|
66
|
+
form.set('path', request.path);
|
|
67
|
+
if (request.metadata)
|
|
68
|
+
form.set('metadata', JSON.stringify(request.metadata));
|
|
69
|
+
const file = await this.http.request('/files', {
|
|
70
|
+
method: 'POST',
|
|
71
|
+
query: { spaceId: request.spaceId },
|
|
72
|
+
body: form,
|
|
73
|
+
});
|
|
74
|
+
return new V2FileResource(this.http, file);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export class V2RunFilesClient {
|
|
78
|
+
http;
|
|
79
|
+
runId;
|
|
80
|
+
constructor(http, runId) {
|
|
81
|
+
this.http = http;
|
|
82
|
+
this.runId = runId;
|
|
83
|
+
}
|
|
84
|
+
list(query = {}) {
|
|
85
|
+
return this.http.request(`/runs/${encodeURIComponent(this.runId)}/files`, { query });
|
|
86
|
+
}
|
|
87
|
+
iter(query = {}) {
|
|
88
|
+
return iterateV2Pages(query, (pageQuery) => this.list(pageQuery));
|
|
89
|
+
}
|
|
90
|
+
async export(request) {
|
|
91
|
+
const file = await this.http.request(`/runs/${encodeURIComponent(this.runId)}/files/export`, {
|
|
92
|
+
method: 'POST',
|
|
93
|
+
body: request,
|
|
94
|
+
});
|
|
95
|
+
return new V2FileResource(this.http, file);
|
|
96
|
+
}
|
|
97
|
+
}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface V2ClientOptions {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface V2RequestOptions {
|
|
6
|
+
method?: 'GET' | 'POST' | 'PATCH' | 'DELETE';
|
|
7
|
+
query?: object;
|
|
8
|
+
body?: unknown;
|
|
9
|
+
headers?: Record<string, string>;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class V2HttpClient {
|
|
13
|
+
readonly baseUrl: string;
|
|
14
|
+
readonly apiKey: string;
|
|
15
|
+
constructor(options: V2ClientOptions);
|
|
16
|
+
request<T>(path: string, options?: V2RequestOptions): Promise<T>;
|
|
17
|
+
raw(path: string, options?: V2RequestOptions): Promise<Response>;
|
|
18
|
+
}
|
package/dist/http.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { BctrlNetworkError, createV2HttpError } from './errors.js';
|
|
2
|
+
import { BCTRL_PRODUCTION_ORIGIN, fetchWithTimeout, resolveApiKey, stripTrailingSlash, } from './utils.js';
|
|
3
|
+
import { SDK_VERSION } from './version.js';
|
|
4
|
+
const V2_PREFIX = '/v2';
|
|
5
|
+
function resolveV2ApiBaseUrl(baseUrl) {
|
|
6
|
+
const raw = stripTrailingSlash(baseUrl?.trim() || BCTRL_PRODUCTION_ORIGIN);
|
|
7
|
+
if (raw.endsWith(V2_PREFIX)) {
|
|
8
|
+
return raw;
|
|
9
|
+
}
|
|
10
|
+
if (raw.endsWith('/v1')) {
|
|
11
|
+
return `${raw.slice(0, -3)}${V2_PREFIX}`;
|
|
12
|
+
}
|
|
13
|
+
return `${raw}${V2_PREFIX}`;
|
|
14
|
+
}
|
|
15
|
+
function resolveV2ApiKey(apiKey) {
|
|
16
|
+
return resolveApiKey(apiKey ?? process.env.BCTRL_API_KEY ?? '');
|
|
17
|
+
}
|
|
18
|
+
function appendQuery(params, key, value) {
|
|
19
|
+
if (value === undefined) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (Array.isArray(value)) {
|
|
23
|
+
for (const item of value) {
|
|
24
|
+
if (item !== undefined)
|
|
25
|
+
params.append(key, String(item));
|
|
26
|
+
}
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (typeof value === 'object') {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
params.set(key, String(value));
|
|
33
|
+
}
|
|
34
|
+
function parseResponseBody(text) {
|
|
35
|
+
if (!text.trim()) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
return JSON.parse(text);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return text;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function responseRequestId(response) {
|
|
46
|
+
return (response.headers.get('x-request-id') ??
|
|
47
|
+
response.headers.get('x-bctrl-request-id') ??
|
|
48
|
+
undefined);
|
|
49
|
+
}
|
|
50
|
+
function isRecord(value) {
|
|
51
|
+
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
52
|
+
}
|
|
53
|
+
function parseV2ErrorBody(parsed, fallbackText) {
|
|
54
|
+
if (isRecord(parsed) && typeof parsed.error === 'string') {
|
|
55
|
+
return {
|
|
56
|
+
error: parsed.error,
|
|
57
|
+
...(typeof parsed.code === 'string' ? { code: parsed.code } : {}),
|
|
58
|
+
...(typeof parsed.requestId === 'string' ? { requestId: parsed.requestId } : {}),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (typeof parsed === 'string' && parsed.trim()) {
|
|
62
|
+
return { error: parsed.trim() };
|
|
63
|
+
}
|
|
64
|
+
return { error: fallbackText.trim() || 'Unknown error' };
|
|
65
|
+
}
|
|
66
|
+
function isBodyInit(value) {
|
|
67
|
+
return (typeof value === 'string' ||
|
|
68
|
+
value instanceof Blob ||
|
|
69
|
+
value instanceof FormData ||
|
|
70
|
+
value instanceof URLSearchParams ||
|
|
71
|
+
value instanceof ArrayBuffer);
|
|
72
|
+
}
|
|
73
|
+
export class V2HttpClient {
|
|
74
|
+
baseUrl;
|
|
75
|
+
apiKey;
|
|
76
|
+
constructor(options) {
|
|
77
|
+
this.baseUrl = resolveV2ApiBaseUrl(options.baseUrl);
|
|
78
|
+
this.apiKey = resolveV2ApiKey(options.apiKey);
|
|
79
|
+
}
|
|
80
|
+
async request(path, options = {}) {
|
|
81
|
+
const response = await this.raw(path, options);
|
|
82
|
+
const text = await response.text();
|
|
83
|
+
return parseResponseBody(text);
|
|
84
|
+
}
|
|
85
|
+
async raw(path, options = {}) {
|
|
86
|
+
const url = new URL(`${this.baseUrl}${path.startsWith('/') ? path : `/${path}`}`);
|
|
87
|
+
const query = options.query ?? {};
|
|
88
|
+
for (const [key, value] of Object.entries(query)) {
|
|
89
|
+
appendQuery(url.searchParams, key, value);
|
|
90
|
+
}
|
|
91
|
+
const headers = {
|
|
92
|
+
Accept: 'application/json',
|
|
93
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
94
|
+
'x-sdk-version': SDK_VERSION,
|
|
95
|
+
'User-Agent': `@bctrl/sdk/${SDK_VERSION} v2`,
|
|
96
|
+
...options.headers,
|
|
97
|
+
};
|
|
98
|
+
const init = {
|
|
99
|
+
method: options.method ?? 'GET',
|
|
100
|
+
headers,
|
|
101
|
+
};
|
|
102
|
+
if (options.body !== undefined) {
|
|
103
|
+
if (isBodyInit(options.body)) {
|
|
104
|
+
init.body = options.body;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
headers['Content-Type'] = 'application/json';
|
|
108
|
+
init.body = JSON.stringify(options.body);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
let response;
|
|
112
|
+
try {
|
|
113
|
+
response = await fetchWithTimeout(url.toString(), init, options.timeoutMs);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (error instanceof Error) {
|
|
117
|
+
throw new BctrlNetworkError(error.message, { cause: error });
|
|
118
|
+
}
|
|
119
|
+
throw new BctrlNetworkError('Network request failed');
|
|
120
|
+
}
|
|
121
|
+
if (!response.ok) {
|
|
122
|
+
const text = await response.text();
|
|
123
|
+
const parsed = parseResponseBody(text);
|
|
124
|
+
const errorBody = parseV2ErrorBody(parsed, text);
|
|
125
|
+
throw createV2HttpError({
|
|
126
|
+
status: response.status,
|
|
127
|
+
message: errorBody.error,
|
|
128
|
+
code: errorBody.code,
|
|
129
|
+
requestId: errorBody.requestId ?? responseRequestId(response),
|
|
130
|
+
body: parsed,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return response;
|
|
134
|
+
}
|
|
135
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './workspaces/index.js';
|
|
11
|
-
export type { BctrlOptions } from './bctrl.js';
|
|
12
|
-
export { Bctrl } from './bctrl.js';
|
|
1
|
+
export { Bctrl, BctrlV2, type BctrlV2Options } from './bctrl.js';
|
|
2
|
+
export { BctrlError, BctrlApiError, BctrlAuthenticationError, BctrlConflictError, BctrlNetworkError, BctrlNotFoundError, BctrlNotReadyError, BctrlPermissionError, BctrlRateLimitError, BctrlUnsupportedError, BctrlValidationError, isControllerBusy, } from './errors.js';
|
|
3
|
+
export { V2BrowserResource, V2SpaceBrowsersClient } from './browsers.js';
|
|
4
|
+
export { V2FileResource, V2FilesClient, V2RunFilesClient } from './files.js';
|
|
5
|
+
export { V2InvocationsClient, V2InvocationResource, V2RuntimeInvocationsClient, } from './invocations.js';
|
|
6
|
+
export { V2RuntimeConnectionResource, V2RuntimeConnectionsClient, V2RuntimeFilesClient, V2RuntimeResource, V2RuntimeRunsClient, V2RuntimesClient, } from './runtimes.js';
|
|
7
|
+
export { V2RunCommandsClient, V2RunEventsClient, V2RunResource, V2RunsClient, } from './runs.js';
|
|
8
|
+
export { V2SpaceEnvironmentClient, V2SpaceResource, V2SpaceRuntimesClient, V2SpacesClient, } from './spaces.js';
|
|
9
|
+
export type * from './types.js';
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// - <package>/stagehand
|
|
10
|
-
// - <package>/selenium
|
|
11
|
-
//
|
|
12
|
-
export { z } from 'zod';
|
|
13
|
-
// Core errors
|
|
14
|
-
export { BctrlError, AutomationError, AutomationError as SdkAutomationError, SessionError, TimeoutError, AuthenticationError, fromErrorResponse, isBctrlError, isAutomationError, isSessionError, isTimeoutError, isAuthenticationError, getAutomationHint, } from './errors.js';
|
|
15
|
-
// Service clients
|
|
16
|
-
export * from './storage/index.js';
|
|
17
|
-
export * from './ai-credentials/index.js';
|
|
18
|
-
export * from './browser-extensions/index.js';
|
|
19
|
-
export * from './browser-profiles/index.js';
|
|
20
|
-
export * from './vault/index.js';
|
|
21
|
-
export * from './updates/index.js';
|
|
22
|
-
export * from './workspaces/index.js';
|
|
23
|
-
export { Bctrl } from './bctrl.js';
|
|
1
|
+
export { Bctrl, BctrlV2 } from './bctrl.js';
|
|
2
|
+
export { BctrlError, BctrlApiError, BctrlAuthenticationError, BctrlConflictError, BctrlNetworkError, BctrlNotFoundError, BctrlNotReadyError, BctrlPermissionError, BctrlRateLimitError, BctrlUnsupportedError, BctrlValidationError, isControllerBusy, } from './errors.js';
|
|
3
|
+
export { V2BrowserResource, V2SpaceBrowsersClient } from './browsers.js';
|
|
4
|
+
export { V2FileResource, V2FilesClient, V2RunFilesClient } from './files.js';
|
|
5
|
+
export { V2InvocationsClient, V2InvocationResource, V2RuntimeInvocationsClient, } from './invocations.js';
|
|
6
|
+
export { V2RuntimeConnectionResource, V2RuntimeConnectionsClient, V2RuntimeFilesClient, V2RuntimeResource, V2RuntimeRunsClient, V2RuntimesClient, } from './runtimes.js';
|
|
7
|
+
export { V2RunCommandsClient, V2RunEventsClient, V2RunResource, V2RunsClient, } from './runs.js';
|
|
8
|
+
export { V2SpaceEnvironmentClient, V2SpaceResource, V2SpaceRuntimesClient, V2SpacesClient, } from './spaces.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { V2HttpClient } from './http.js';
|
|
2
|
+
import type { V2Invocation, V2RuntimeInvocationCreateRequest, V2InvocationWaitRequest, V2InvocationWaitResponse } from './types.js';
|
|
3
|
+
export declare class V2InvocationResource {
|
|
4
|
+
private readonly http;
|
|
5
|
+
readonly data: V2Invocation;
|
|
6
|
+
constructor(http: V2HttpClient, data: V2Invocation);
|
|
7
|
+
get id(): string;
|
|
8
|
+
refresh(): Promise<V2Invocation>;
|
|
9
|
+
wait(request?: V2InvocationWaitRequest): Promise<V2InvocationWaitResponse>;
|
|
10
|
+
cancel(): Promise<V2Invocation>;
|
|
11
|
+
}
|
|
12
|
+
export declare class V2InvocationsClient {
|
|
13
|
+
private readonly http;
|
|
14
|
+
constructor(http: V2HttpClient);
|
|
15
|
+
get(id: string): Promise<V2InvocationResource>;
|
|
16
|
+
wait(id: string, request?: V2InvocationWaitRequest): Promise<V2InvocationWaitResponse>;
|
|
17
|
+
cancel(id: string): Promise<V2InvocationResource>;
|
|
18
|
+
}
|
|
19
|
+
export declare class V2RuntimeInvocationsClient {
|
|
20
|
+
private readonly http;
|
|
21
|
+
private readonly runtimeId;
|
|
22
|
+
constructor(http: V2HttpClient, runtimeId: string);
|
|
23
|
+
create(request: V2RuntimeInvocationCreateRequest): Promise<V2InvocationResource>;
|
|
24
|
+
}
|