@agent-relay/cloud 12.0.0-rc.0 → 12.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.
- package/dist/fleet-sandbox.d.ts +53 -1
- package/dist/fleet-sandbox.d.ts.map +1 -1
- package/dist/fleet-sandbox.js +240 -19
- package/dist/fleet-sandbox.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/project-workspace-key.d.ts +30 -1
- package/dist/project-workspace-key.d.ts.map +1 -1
- package/dist/project-workspace-key.js +282 -8
- package/dist/project-workspace-key.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/workflows.d.ts +1 -9
- package/dist/workflows.d.ts.map +1 -1
- package/dist/workflows.js +17 -0
- package/dist/workflows.js.map +1 -1
- package/dist/workspace-key.d.ts +1 -1
- package/dist/workspace-key.d.ts.map +1 -1
- package/dist/workspace-key.js +1 -1
- package/dist/workspace-key.js.map +1 -1
- package/package.json +2 -2
package/dist/fleet-sandbox.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud may hand back the gateway route owned by a provisioned sandbox. This
|
|
3
|
+
* is deliberately an exact-origin allowlist: a route is control-plane input,
|
|
4
|
+
* not a caller-controlled SDK override.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CANONICAL_RELAYCAST_ORIGIN = "https://cast.agentrelay.com";
|
|
7
|
+
export declare const AGENT37_RELAYCAST_ORIGIN = "https://agent37-cast.agentrelay.com";
|
|
1
8
|
export type CloudFleetSandboxRequestOptions = {
|
|
2
9
|
apiUrl?: string;
|
|
3
10
|
signal?: AbortSignal;
|
|
4
11
|
timeoutMs?: number;
|
|
5
12
|
};
|
|
13
|
+
export type CloudFleetSandboxProviderId = 'daytona' | 'e2b' | 'vercel' | 'freestyle' | 'agent37' | 'microsandbox';
|
|
6
14
|
/**
|
|
7
15
|
* Carries every safe identifier Cloud returned when provisioning failed after
|
|
8
16
|
* the request may have created a billable sandbox.
|
|
@@ -11,11 +19,13 @@ export declare class CloudFleetSandboxProvisionError extends Error {
|
|
|
11
19
|
readonly cloudWorkspaceId?: string;
|
|
12
20
|
readonly sandboxId?: string;
|
|
13
21
|
readonly nodeName?: string;
|
|
22
|
+
readonly providerId?: CloudFleetSandboxProviderId;
|
|
14
23
|
readonly outcomeUnknown: boolean;
|
|
15
24
|
constructor(message: string, identity?: {
|
|
16
25
|
cloudWorkspaceId?: string;
|
|
17
26
|
sandboxId?: string;
|
|
18
27
|
nodeName?: string;
|
|
28
|
+
providerId?: CloudFleetSandboxProviderId;
|
|
19
29
|
outcomeUnknown?: boolean;
|
|
20
30
|
cause?: unknown;
|
|
21
31
|
});
|
|
@@ -23,22 +33,48 @@ export declare class CloudFleetSandboxProvisionError extends Error {
|
|
|
23
33
|
export type EnsureCloudFleetSandboxInput = {
|
|
24
34
|
/** Cloud UUID or unified rw_* workspace id. */
|
|
25
35
|
workspaceId: string;
|
|
36
|
+
/** Caller-declared one-time Cloud identity used to resume a cut-off provision. */
|
|
37
|
+
sandboxId?: string;
|
|
26
38
|
name?: string;
|
|
27
39
|
requiredCapability: string;
|
|
28
40
|
maxAgents?: number;
|
|
29
41
|
mountRelayfile?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Relayfile directory subtrees to materialize in the sandbox. Each path
|
|
44
|
+
* must use the explicit `/path/**` subtree form accepted by Cloud.
|
|
45
|
+
*/
|
|
46
|
+
relayfilePaths?: readonly string[];
|
|
30
47
|
forceProvision?: boolean;
|
|
48
|
+
/** Constrain provisioning to a provider that Cloud has enabled for routing. */
|
|
49
|
+
providerId?: CloudFleetSandboxProviderId;
|
|
50
|
+
/** Provider-neutral semantics; Cloud owns the provider decision. */
|
|
51
|
+
workloadProfile?: CloudFleetSandboxWorkloadProfile;
|
|
31
52
|
waitTimeoutMs?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Repositories to clone into `/srv/agent-workforce/<name>` inside the
|
|
55
|
+
* provisioned sandbox. Each entry is a bare `owner/name`; cloud validates
|
|
56
|
+
* the shape on the wire before the sandbox script ever sees it.
|
|
57
|
+
*
|
|
58
|
+
* Required for the factory-cloud dispatch path so its worker_cwd
|
|
59
|
+
* (`/srv/agent-workforce/<repo>`) is resolvable on the JIT node. Cloud
|
|
60
|
+
* PR #3212 implements the ensure-side; this helper just plumbs it through.
|
|
61
|
+
*/
|
|
62
|
+
repos?: readonly string[];
|
|
32
63
|
};
|
|
64
|
+
export type CloudFleetSandboxWorkloadProfile = 'standard' | 'long-running-agent' | 'standard-long-running-agent';
|
|
33
65
|
export type CloudFleetSandboxReady = {
|
|
34
66
|
outcome: 'provisioned';
|
|
35
67
|
cloudWorkspaceId: string;
|
|
36
68
|
nodeId: string;
|
|
37
69
|
nodeName: string;
|
|
38
70
|
sandboxId: string;
|
|
71
|
+
providerSandboxId?: string;
|
|
39
72
|
relayWorkspaceId: string;
|
|
73
|
+
/** Closed server-owned Relaycast contract when Cloud returned one. Required for Agent37. */
|
|
74
|
+
relaycastTarget?: CloudFleetRelaycastTarget;
|
|
40
75
|
relayfileMounted: boolean;
|
|
41
76
|
relayfileMountPath?: string;
|
|
77
|
+
providerId?: CloudFleetSandboxProviderId;
|
|
42
78
|
};
|
|
43
79
|
export type CloudFleetSandboxReused = {
|
|
44
80
|
outcome: 'reused';
|
|
@@ -48,22 +84,38 @@ export type CloudFleetSandboxReused = {
|
|
|
48
84
|
status: string;
|
|
49
85
|
activeAgents: number | null;
|
|
50
86
|
maxAgents: number | null;
|
|
87
|
+
providerId?: CloudFleetSandboxProviderId;
|
|
88
|
+
/** Closed server-owned Relaycast contract when Cloud returned one. Required for Agent37. */
|
|
89
|
+
relaycastTarget?: CloudFleetRelaycastTarget;
|
|
51
90
|
};
|
|
52
91
|
export type CloudFleetSandboxProvisioningTimeout = {
|
|
53
92
|
outcome: 'provisioning_timeout';
|
|
54
93
|
cloudWorkspaceId: string;
|
|
55
94
|
sandboxId: string;
|
|
95
|
+
providerSandboxId?: string;
|
|
56
96
|
relayWorkspaceId: string;
|
|
97
|
+
relaycastTarget?: CloudFleetRelaycastTarget;
|
|
57
98
|
nodeName: string;
|
|
58
99
|
waitedMs: number;
|
|
100
|
+
providerId?: CloudFleetSandboxProviderId;
|
|
59
101
|
};
|
|
60
102
|
export type EnsureCloudFleetSandboxResult = CloudFleetSandboxReady | CloudFleetSandboxReused | CloudFleetSandboxProvisioningTimeout;
|
|
61
103
|
export type DeleteCloudFleetSandboxInput = {
|
|
62
104
|
cloudWorkspaceId: string;
|
|
63
105
|
sandboxId: string;
|
|
106
|
+
providerId?: CloudFleetSandboxProviderId;
|
|
107
|
+
};
|
|
108
|
+
export type CloudFleetRelaycastRoute = 'canonical' | 'agent37-isolated';
|
|
109
|
+
export type CloudFleetRelaycastTarget = {
|
|
110
|
+
route: CloudFleetRelaycastRoute;
|
|
111
|
+
baseUrl: string;
|
|
112
|
+
workspaceId: string;
|
|
113
|
+
relaycastApiKey: string;
|
|
64
114
|
};
|
|
115
|
+
/** Validate Cloud's closed Relaycast route, identity, and scoped credential contract. */
|
|
116
|
+
export declare function normalizeRelaycastTarget(value: unknown): CloudFleetRelaycastTarget;
|
|
65
117
|
/** Resolve a Relay workspace in Cloud, provision/reuse a node, and wait for readiness. */
|
|
66
118
|
export declare function ensureCloudFleetSandbox(input: EnsureCloudFleetSandboxInput, options?: CloudFleetSandboxRequestOptions): Promise<EnsureCloudFleetSandboxResult>;
|
|
67
|
-
/** Best-effort-safe deletion for a Cloud-owned
|
|
119
|
+
/** Best-effort-safe deletion for a Cloud-owned fleet sandbox. */
|
|
68
120
|
export declare function deleteCloudFleetSandbox(input: DeleteCloudFleetSandboxInput, options?: CloudFleetSandboxRequestOptions): Promise<void>;
|
|
69
121
|
//# sourceMappingURL=fleet-sandbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-sandbox.d.ts","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fleet-sandbox.d.ts","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/fleet-sandbox.js
CHANGED
|
@@ -2,7 +2,22 @@ import { authorizedApiFetch, ensureCloudSession } from './auth.js';
|
|
|
2
2
|
import { redactCredentialValues } from './redact.js';
|
|
3
3
|
import { defaultApiUrl } from './types.js';
|
|
4
4
|
const CLOUD_WORKSPACE_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
5
|
-
const
|
|
5
|
+
const CLOUD_SANDBOX_ID_PATTERN = /^sbx_[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
|
|
6
|
+
/**
|
|
7
|
+
* Cloud may hand back the gateway route owned by a provisioned sandbox. This
|
|
8
|
+
* is deliberately an exact-origin allowlist: a route is control-plane input,
|
|
9
|
+
* not a caller-controlled SDK override.
|
|
10
|
+
*/
|
|
11
|
+
export const CANONICAL_RELAYCAST_ORIGIN = 'https://cast.agentrelay.com';
|
|
12
|
+
export const AGENT37_RELAYCAST_ORIGIN = 'https://agent37-cast.agentrelay.com';
|
|
13
|
+
const TRUSTED_RELAYCAST_ORIGINS = new Set([CANONICAL_RELAYCAST_ORIGIN, AGENT37_RELAYCAST_ORIGIN]);
|
|
14
|
+
const DEFAULT_RESOLUTION_TIMEOUT_MS = 120_000;
|
|
15
|
+
// Mounted provisioning can spend up to 240s completing the initial Relayfile
|
|
16
|
+
// sync, then up to 90s waiting for the enrolled node to report ready. Leave a
|
|
17
|
+
// bounded margin for Daytona creation and credential setup so the client does
|
|
18
|
+
// not abandon a successful server-side request without receiving its sandbox
|
|
19
|
+
// identity (which prevents the CLI from cleaning it up safely).
|
|
20
|
+
const DEFAULT_ENSURE_TIMEOUT_MS = 480_000;
|
|
6
21
|
const DEFAULT_DELETE_TIMEOUT_MS = 30_000;
|
|
7
22
|
/**
|
|
8
23
|
* Carries every safe identifier Cloud returned when provisioning failed after
|
|
@@ -12,6 +27,7 @@ export class CloudFleetSandboxProvisionError extends Error {
|
|
|
12
27
|
cloudWorkspaceId;
|
|
13
28
|
sandboxId;
|
|
14
29
|
nodeName;
|
|
30
|
+
providerId;
|
|
15
31
|
outcomeUnknown;
|
|
16
32
|
constructor(message, identity = {}) {
|
|
17
33
|
super(message, identity.cause === undefined ? undefined : { cause: identity.cause });
|
|
@@ -19,9 +35,20 @@ export class CloudFleetSandboxProvisionError extends Error {
|
|
|
19
35
|
this.cloudWorkspaceId = identity.cloudWorkspaceId;
|
|
20
36
|
this.sandboxId = identity.sandboxId;
|
|
21
37
|
this.nodeName = identity.nodeName;
|
|
38
|
+
this.providerId = identity.providerId;
|
|
22
39
|
this.outcomeUnknown = identity.outcomeUnknown === true;
|
|
23
40
|
}
|
|
24
41
|
}
|
|
42
|
+
class CloudFleetSandboxIdentityMismatchError extends Error {
|
|
43
|
+
}
|
|
44
|
+
const CLOUD_FLEET_SANDBOX_PROVIDER_IDS = [
|
|
45
|
+
'daytona',
|
|
46
|
+
'e2b',
|
|
47
|
+
'vercel',
|
|
48
|
+
'freestyle',
|
|
49
|
+
'agent37',
|
|
50
|
+
'microsandbox',
|
|
51
|
+
];
|
|
25
52
|
function isObject(value) {
|
|
26
53
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
27
54
|
}
|
|
@@ -29,6 +56,53 @@ function readString(payload, key) {
|
|
|
29
56
|
const value = payload[key];
|
|
30
57
|
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
31
58
|
}
|
|
59
|
+
function normalizeRelaycastOrigin(value, field) {
|
|
60
|
+
if (typeof value !== 'string' || !value.trim()) {
|
|
61
|
+
throw new Error(`Cloud fleet sandbox response has an invalid ${field}.`);
|
|
62
|
+
}
|
|
63
|
+
let parsed;
|
|
64
|
+
try {
|
|
65
|
+
parsed = new URL(value.trim());
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
throw new Error(`Cloud fleet sandbox response has an invalid ${field}.`);
|
|
69
|
+
}
|
|
70
|
+
if (parsed.protocol !== 'https:' ||
|
|
71
|
+
parsed.username ||
|
|
72
|
+
parsed.password ||
|
|
73
|
+
parsed.port ||
|
|
74
|
+
parsed.search ||
|
|
75
|
+
parsed.hash ||
|
|
76
|
+
(parsed.pathname !== '' && parsed.pathname !== '/') ||
|
|
77
|
+
!TRUSTED_RELAYCAST_ORIGINS.has(parsed.origin)) {
|
|
78
|
+
throw new Error(`Cloud fleet sandbox response has an untrusted ${field}.`);
|
|
79
|
+
}
|
|
80
|
+
return parsed.origin;
|
|
81
|
+
}
|
|
82
|
+
/** Validate Cloud's closed Relaycast route, identity, and scoped credential contract. */
|
|
83
|
+
export function normalizeRelaycastTarget(value) {
|
|
84
|
+
if (!isObject(value)) {
|
|
85
|
+
throw new Error('Cloud fleet sandbox response is missing relaycastTarget.');
|
|
86
|
+
}
|
|
87
|
+
const route = readString(value, 'route');
|
|
88
|
+
if (route !== 'canonical' && route !== 'agent37-isolated') {
|
|
89
|
+
throw new Error('Cloud fleet sandbox response has an unknown Relaycast route.');
|
|
90
|
+
}
|
|
91
|
+
const baseUrl = normalizeRelaycastOrigin(value.baseUrl, 'relaycastTarget.baseUrl');
|
|
92
|
+
const expectedOrigin = route === 'canonical' ? CANONICAL_RELAYCAST_ORIGIN : AGENT37_RELAYCAST_ORIGIN;
|
|
93
|
+
if (baseUrl !== expectedOrigin) {
|
|
94
|
+
throw new Error('Cloud fleet sandbox response mapped Relaycast route to the wrong origin.');
|
|
95
|
+
}
|
|
96
|
+
const workspaceId = readString(value, 'workspaceId');
|
|
97
|
+
if (!workspaceId) {
|
|
98
|
+
throw new Error('Cloud fleet sandbox response is missing relaycastTarget.workspaceId.');
|
|
99
|
+
}
|
|
100
|
+
const relaycastApiKey = readString(value, 'relaycastApiKey');
|
|
101
|
+
if (!relaycastApiKey || !/^rk_live_[A-Za-z0-9_-]+$/.test(relaycastApiKey)) {
|
|
102
|
+
throw new Error('Cloud fleet sandbox response has an invalid Relaycast API key.');
|
|
103
|
+
}
|
|
104
|
+
return { route, baseUrl, workspaceId, relaycastApiKey };
|
|
105
|
+
}
|
|
32
106
|
function readNumber(payload, key) {
|
|
33
107
|
const value = payload[key];
|
|
34
108
|
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
@@ -39,6 +113,22 @@ function requiredNumber(payload, key, context) {
|
|
|
39
113
|
throw new Error(`${context} response is missing ${key}.`);
|
|
40
114
|
return value;
|
|
41
115
|
}
|
|
116
|
+
function assertProviderRelaycastTarget(providerId, target) {
|
|
117
|
+
if (providerId === 'agent37') {
|
|
118
|
+
if (!target) {
|
|
119
|
+
throw new Error('Cloud fleet sandbox response is missing the Agent37 Relaycast target.');
|
|
120
|
+
}
|
|
121
|
+
if (target.route !== 'agent37-isolated' || target.baseUrl !== AGENT37_RELAYCAST_ORIGIN) {
|
|
122
|
+
throw new Error('Cloud fleet sandbox response mapped Agent37 to a non-isolated Relaycast target.');
|
|
123
|
+
}
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (providerId !== undefined && target) {
|
|
127
|
+
if (target.route !== 'canonical' || target.baseUrl !== CANONICAL_RELAYCAST_ORIGIN) {
|
|
128
|
+
throw new Error(`Cloud fleet sandbox response mapped ${providerId} to a non-canonical Relaycast target.`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
42
132
|
function boundedSignal(options, defaultTimeoutMs) {
|
|
43
133
|
const timeoutMs = options.timeoutMs ?? defaultTimeoutMs;
|
|
44
134
|
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
@@ -77,6 +167,39 @@ function requiredString(payload, key, context) {
|
|
|
77
167
|
throw new Error(`${context} response is missing ${key}.`);
|
|
78
168
|
return value;
|
|
79
169
|
}
|
|
170
|
+
function validateSandboxIdentity(input) {
|
|
171
|
+
if (input.sandboxId !== undefined && typeof input.sandboxId !== 'string') {
|
|
172
|
+
throw new Error('Cloud fleet sandbox sandboxId must be a string.');
|
|
173
|
+
}
|
|
174
|
+
if (input.name !== undefined && typeof input.name !== 'string') {
|
|
175
|
+
throw new Error('Cloud fleet sandbox name must be a string.');
|
|
176
|
+
}
|
|
177
|
+
const sandboxId = input.sandboxId?.trim();
|
|
178
|
+
const name = input.name?.trim();
|
|
179
|
+
if (input.sandboxId !== undefined && (!sandboxId || !CLOUD_SANDBOX_ID_PATTERN.test(sandboxId))) {
|
|
180
|
+
throw new Error('Cloud fleet sandbox sandboxId must match lowercase sbx_<UUID> using an RFC 4122 UUID.');
|
|
181
|
+
}
|
|
182
|
+
if (sandboxId !== undefined && input.forceProvision !== true) {
|
|
183
|
+
throw new Error('Cloud fleet sandbox sandboxId requires forceProvision: true.');
|
|
184
|
+
}
|
|
185
|
+
if (sandboxId !== undefined && !name) {
|
|
186
|
+
throw new Error('Cloud fleet sandbox sandboxId requires a node name.');
|
|
187
|
+
}
|
|
188
|
+
const longRunning = input.workloadProfile === 'long-running-agent' || input.workloadProfile === 'standard-long-running-agent';
|
|
189
|
+
if (longRunning && sandboxId !== undefined) {
|
|
190
|
+
if (input.forceProvision !== true) {
|
|
191
|
+
throw new Error('Long-running Cloud fleet sandbox requests require forceProvision: true.');
|
|
192
|
+
}
|
|
193
|
+
const expectedName = `fleet-sandbox-${sandboxId.slice('sbx_'.length)}`;
|
|
194
|
+
if (name !== expectedName) {
|
|
195
|
+
throw new Error(`Long-running Cloud fleet sandbox requests require name '${expectedName}' to preserve the one-to-one sandbox identity.`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
...(sandboxId === undefined ? {} : { sandboxId }),
|
|
200
|
+
...(name === undefined ? {} : { name }),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
80
203
|
async function resolveCloudWorkspaceId(workspaceId, auth, signal) {
|
|
81
204
|
const { response, auth: activeAuth } = await authorizedApiFetch(auth, `/api/v1/workspaces/${encodeURIComponent(workspaceId)}/resolve`, { method: 'GET', signal }, { interactive: false });
|
|
82
205
|
const payload = await readJson(response);
|
|
@@ -93,29 +216,75 @@ async function resolveCloudWorkspaceId(workspaceId, auth, signal) {
|
|
|
93
216
|
auth: activeAuth,
|
|
94
217
|
};
|
|
95
218
|
}
|
|
96
|
-
function
|
|
219
|
+
function readProviderId(payload, exactProviderRequested) {
|
|
220
|
+
const value = readString(payload, 'providerId');
|
|
221
|
+
if (value === undefined)
|
|
222
|
+
return undefined;
|
|
223
|
+
if (CLOUD_FLEET_SANDBOX_PROVIDER_IDS.includes(value)) {
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
if (exactProviderRequested) {
|
|
227
|
+
throw new Error('Cloud fleet sandbox response has an unknown providerId.');
|
|
228
|
+
}
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
function assertExpectedSandboxIdentity(payload, expectedSandboxId) {
|
|
232
|
+
const sandboxId = requiredString(payload, 'sandboxId', 'Cloud fleet sandbox');
|
|
233
|
+
if (sandboxId !== expectedSandboxId) {
|
|
234
|
+
throw new CloudFleetSandboxIdentityMismatchError(`Cloud returned sandboxId ${sandboxId} instead of requested sandboxId ${expectedSandboxId}.`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
function normalizeEnsureResult(payload, cloudWorkspaceId, expectedSandboxId, expectedNodeName, requestedProviderId) {
|
|
97
238
|
if (!isObject(payload))
|
|
98
239
|
throw new Error('Cloud fleet sandbox response was not valid JSON.');
|
|
240
|
+
// A caller-declared identity is the cleanup authority. Validate it before
|
|
241
|
+
// reading any other response field so malformed and future outcomes cannot
|
|
242
|
+
// make an untrusted public ID eligible for automatic deletion.
|
|
243
|
+
if (expectedSandboxId !== undefined) {
|
|
244
|
+
assertExpectedSandboxIdentity(payload, expectedSandboxId);
|
|
245
|
+
}
|
|
99
246
|
const outcome = readString(payload, 'outcome');
|
|
100
247
|
const nodeName = requiredString(payload, 'nodeName', 'Cloud fleet sandbox');
|
|
248
|
+
if (expectedSandboxId !== undefined && expectedNodeName !== undefined && nodeName !== expectedNodeName) {
|
|
249
|
+
throw new CloudFleetSandboxIdentityMismatchError(`Cloud returned nodeName ${nodeName} instead of requested nodeName ${expectedNodeName}.`);
|
|
250
|
+
}
|
|
251
|
+
const providerId = readProviderId(payload, requestedProviderId !== undefined);
|
|
252
|
+
if (requestedProviderId !== undefined && providerId !== requestedProviderId) {
|
|
253
|
+
throw new Error(providerId === undefined
|
|
254
|
+
? `Cloud did not prove requested provider ${requestedProviderId}.`
|
|
255
|
+
: `Cloud returned provider ${providerId} instead of requested provider ${requestedProviderId}.`);
|
|
256
|
+
}
|
|
101
257
|
if (outcome === 'provisioned') {
|
|
102
258
|
if (typeof payload.relayfileMounted !== 'boolean') {
|
|
103
259
|
throw new Error('Cloud fleet sandbox response is missing relayfileMounted.');
|
|
104
260
|
}
|
|
261
|
+
const sandboxId = requiredString(payload, 'sandboxId', 'Cloud fleet sandbox');
|
|
262
|
+
const providerSandboxId = readString(payload, 'providerSandboxId');
|
|
263
|
+
const relayWorkspaceId = requiredString(payload, 'relayWorkspaceId', 'Cloud fleet sandbox');
|
|
264
|
+
const relaycastTarget = payload.relaycastTarget === undefined ? undefined : normalizeRelaycastTarget(payload.relaycastTarget);
|
|
265
|
+
if (relaycastTarget !== undefined && relaycastTarget.workspaceId !== relayWorkspaceId) {
|
|
266
|
+
throw new Error('Cloud fleet sandbox response has mismatched Relaycast workspace identities.');
|
|
267
|
+
}
|
|
268
|
+
assertProviderRelaycastTarget(providerId, relaycastTarget);
|
|
105
269
|
return {
|
|
106
270
|
outcome,
|
|
107
271
|
cloudWorkspaceId,
|
|
108
272
|
nodeId: requiredString(payload, 'nodeId', 'Cloud fleet sandbox'),
|
|
109
273
|
nodeName,
|
|
110
|
-
sandboxId
|
|
111
|
-
|
|
274
|
+
sandboxId,
|
|
275
|
+
...(providerSandboxId === undefined ? {} : { providerSandboxId }),
|
|
276
|
+
relayWorkspaceId,
|
|
277
|
+
...(relaycastTarget === undefined ? {} : { relaycastTarget }),
|
|
112
278
|
relayfileMounted: payload.relayfileMounted,
|
|
279
|
+
...(providerId === undefined ? {} : { providerId }),
|
|
113
280
|
...(readString(payload, 'relayfileMountPath')
|
|
114
281
|
? { relayfileMountPath: readString(payload, 'relayfileMountPath') }
|
|
115
282
|
: {}),
|
|
116
283
|
};
|
|
117
284
|
}
|
|
118
285
|
if (outcome === 'reused') {
|
|
286
|
+
const relaycastTarget = payload.relaycastTarget === undefined ? undefined : normalizeRelaycastTarget(payload.relaycastTarget);
|
|
287
|
+
assertProviderRelaycastTarget(providerId, relaycastTarget);
|
|
119
288
|
return {
|
|
120
289
|
outcome,
|
|
121
290
|
cloudWorkspaceId,
|
|
@@ -124,16 +293,28 @@ function normalizeEnsureResult(payload, cloudWorkspaceId) {
|
|
|
124
293
|
status: requiredString(payload, 'status', 'Cloud fleet sandbox'),
|
|
125
294
|
activeAgents: readNumber(payload, 'activeAgents') ?? null,
|
|
126
295
|
maxAgents: readNumber(payload, 'maxAgents') ?? null,
|
|
296
|
+
...(providerId === undefined ? {} : { providerId }),
|
|
297
|
+
...(relaycastTarget === undefined ? {} : { relaycastTarget }),
|
|
127
298
|
};
|
|
128
299
|
}
|
|
129
300
|
if (outcome === 'provisioning_timeout') {
|
|
301
|
+
const sandboxId = requiredString(payload, 'sandboxId', 'Cloud fleet sandbox');
|
|
302
|
+
const providerSandboxId = readString(payload, 'providerSandboxId');
|
|
303
|
+
const relayWorkspaceId = requiredString(payload, 'relayWorkspaceId', 'Cloud fleet sandbox');
|
|
304
|
+
const relaycastTarget = payload.relaycastTarget === undefined ? undefined : normalizeRelaycastTarget(payload.relaycastTarget);
|
|
305
|
+
if (relaycastTarget !== undefined && relaycastTarget.workspaceId !== relayWorkspaceId) {
|
|
306
|
+
throw new Error('Cloud fleet sandbox response has mismatched Relaycast workspace identities.');
|
|
307
|
+
}
|
|
130
308
|
return {
|
|
131
309
|
outcome,
|
|
132
310
|
cloudWorkspaceId,
|
|
133
|
-
sandboxId
|
|
134
|
-
|
|
311
|
+
sandboxId,
|
|
312
|
+
...(providerSandboxId === undefined ? {} : { providerSandboxId }),
|
|
313
|
+
relayWorkspaceId,
|
|
314
|
+
...(relaycastTarget === undefined ? {} : { relaycastTarget }),
|
|
135
315
|
nodeName,
|
|
136
316
|
waitedMs: requiredNumber(payload, 'waitedMs', 'Cloud fleet sandbox'),
|
|
317
|
+
...(providerId === undefined ? {} : { providerId }),
|
|
137
318
|
};
|
|
138
319
|
}
|
|
139
320
|
throw new Error('Cloud fleet sandbox response has an unknown outcome.');
|
|
@@ -146,11 +327,15 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
|
|
|
146
327
|
throw new Error('A workspace ID is required to provision a fleet sandbox.');
|
|
147
328
|
if (!requiredCapability)
|
|
148
329
|
throw new Error('A spawn capability is required to provision a fleet sandbox.');
|
|
330
|
+
const sandboxIdentity = validateSandboxIdentity(input);
|
|
331
|
+
if (input.relayfilePaths !== undefined && input.relayfilePaths.length === 0) {
|
|
332
|
+
throw new Error('At least one Relayfile subtree path is required when relayfilePaths is provided.');
|
|
333
|
+
}
|
|
149
334
|
const session = await ensureCloudSession({
|
|
150
335
|
apiUrl: options.apiUrl || defaultApiUrl(),
|
|
151
336
|
interactive: false,
|
|
152
337
|
});
|
|
153
|
-
const resolutionSignal = boundedSignal(options,
|
|
338
|
+
const resolutionSignal = boundedSignal(options, DEFAULT_RESOLUTION_TIMEOUT_MS);
|
|
154
339
|
const resolved = await resolveCloudWorkspaceId(workspaceId, session.auth, resolutionSignal);
|
|
155
340
|
const signal = boundedSignal(options, DEFAULT_ENSURE_TIMEOUT_MS);
|
|
156
341
|
let response;
|
|
@@ -161,53 +346,86 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
|
|
|
161
346
|
body: JSON.stringify({
|
|
162
347
|
workspaceId: resolved.cloudWorkspaceId,
|
|
163
348
|
requiredCapability,
|
|
164
|
-
...(
|
|
349
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
350
|
+
...(sandboxIdentity.name === undefined ? {} : { name: sandboxIdentity.name }),
|
|
165
351
|
...(input.maxAgents !== undefined ? { maxAgents: input.maxAgents } : {}),
|
|
166
352
|
...(input.mountRelayfile !== undefined ? { mountRelayfile: input.mountRelayfile } : {}),
|
|
353
|
+
...(input.relayfilePaths === undefined ? {} : { relayfilePaths: [...input.relayfilePaths] }),
|
|
167
354
|
...(input.forceProvision !== undefined ? { forceProvision: input.forceProvision } : {}),
|
|
355
|
+
...(input.providerId !== undefined ? { providerId: input.providerId } : {}),
|
|
356
|
+
...(input.workloadProfile !== undefined ? { workloadProfile: input.workloadProfile } : {}),
|
|
168
357
|
...(input.waitTimeoutMs !== undefined ? { waitTimeoutMs: input.waitTimeoutMs } : {}),
|
|
358
|
+
...(input.repos !== undefined && input.repos.length > 0 ? { repos: [...input.repos] } : {}),
|
|
169
359
|
}),
|
|
170
360
|
}, { interactive: false }));
|
|
171
361
|
}
|
|
172
362
|
catch (error) {
|
|
173
363
|
throw new CloudFleetSandboxProvisionError(redactCredentialValues(`Cloud fleet sandbox request ended without a complete response: ${error instanceof Error ? error.message : String(error)}`), {
|
|
174
364
|
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
365
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
175
366
|
...(input.name ? { nodeName: input.name } : {}),
|
|
367
|
+
...(input.providerId ? { providerId: input.providerId } : {}),
|
|
176
368
|
outcomeUnknown: true,
|
|
177
369
|
cause: error,
|
|
178
370
|
});
|
|
179
371
|
}
|
|
180
372
|
const payload = await readJson(response);
|
|
181
373
|
if (!response.ok) {
|
|
374
|
+
const returnedSandboxId = isObject(payload) ? readString(payload, 'sandboxId') : undefined;
|
|
375
|
+
if (sandboxIdentity.sandboxId !== undefined &&
|
|
376
|
+
returnedSandboxId !== undefined &&
|
|
377
|
+
returnedSandboxId !== sandboxIdentity.sandboxId) {
|
|
378
|
+
const mismatch = new CloudFleetSandboxIdentityMismatchError(`Cloud returned sandboxId ${returnedSandboxId} instead of requested sandboxId ${sandboxIdentity.sandboxId}.`);
|
|
379
|
+
throw new CloudFleetSandboxProvisionError(mismatch.message, {
|
|
380
|
+
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
381
|
+
...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
|
|
382
|
+
...(input.providerId === undefined ? {} : { providerId: input.providerId }),
|
|
383
|
+
outcomeUnknown: true,
|
|
384
|
+
cause: mismatch,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
182
387
|
const error = endpointError('provision the fleet sandbox', response, payload);
|
|
388
|
+
// Gateway/server failures can arrive after Cloud accepted the ensure
|
|
389
|
+
// request but before it could return an identity. Keep every 5xx failure
|
|
390
|
+
// replayable as an unknown outcome, even for legacy custom-name callers;
|
|
391
|
+
// never copy an unverified response ID into cleanup authority.
|
|
392
|
+
if (response.status >= 500) {
|
|
393
|
+
throw new CloudFleetSandboxProvisionError(error.message, {
|
|
394
|
+
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
395
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
396
|
+
...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
|
|
397
|
+
...(input.providerId === undefined ? {} : { providerId: input.providerId }),
|
|
398
|
+
outcomeUnknown: true,
|
|
399
|
+
cause: error,
|
|
400
|
+
});
|
|
401
|
+
}
|
|
183
402
|
if (isObject(payload) && readString(payload, 'sandboxId')) {
|
|
184
403
|
throw new CloudFleetSandboxProvisionError(error.message, {
|
|
185
404
|
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
186
|
-
sandboxId:
|
|
187
|
-
|
|
405
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
406
|
+
...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
|
|
407
|
+
...(input.providerId === undefined ? {} : { providerId: input.providerId }),
|
|
408
|
+
outcomeUnknown: true,
|
|
188
409
|
cause: error,
|
|
189
410
|
});
|
|
190
411
|
}
|
|
191
412
|
throw error;
|
|
192
413
|
}
|
|
193
414
|
try {
|
|
194
|
-
return normalizeEnsureResult(payload, resolved.cloudWorkspaceId);
|
|
415
|
+
return normalizeEnsureResult(payload, resolved.cloudWorkspaceId, sandboxIdentity.sandboxId, sandboxIdentity.name, input.providerId);
|
|
195
416
|
}
|
|
196
417
|
catch (error) {
|
|
197
418
|
throw new CloudFleetSandboxProvisionError(error instanceof Error ? error.message : 'Cloud fleet sandbox response was invalid.', {
|
|
198
419
|
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
199
|
-
...(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
...(isObject(payload) && (readString(payload, 'nodeName') ?? input.name)
|
|
203
|
-
? { nodeName: readString(payload, 'nodeName') ?? input.name }
|
|
204
|
-
: {}),
|
|
420
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
421
|
+
...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
|
|
422
|
+
...(input.providerId === undefined ? {} : { providerId: input.providerId }),
|
|
205
423
|
outcomeUnknown: true,
|
|
206
424
|
cause: error,
|
|
207
425
|
});
|
|
208
426
|
}
|
|
209
427
|
}
|
|
210
|
-
/** Best-effort-safe deletion for a Cloud-owned
|
|
428
|
+
/** Best-effort-safe deletion for a Cloud-owned fleet sandbox. */
|
|
211
429
|
export async function deleteCloudFleetSandbox(input, options = {}) {
|
|
212
430
|
const cloudWorkspaceId = input.cloudWorkspaceId.trim();
|
|
213
431
|
const sandboxId = input.sandboxId.trim();
|
|
@@ -221,7 +439,10 @@ export async function deleteCloudFleetSandbox(input, options = {}) {
|
|
|
221
439
|
const { response } = await authorizedApiFetch(session.auth, `/api/v1/fleet/nodes/sandbox/${encodeURIComponent(sandboxId)}`, {
|
|
222
440
|
method: 'DELETE',
|
|
223
441
|
signal,
|
|
224
|
-
body: JSON.stringify({
|
|
442
|
+
body: JSON.stringify({
|
|
443
|
+
workspaceId: cloudWorkspaceId,
|
|
444
|
+
...(input.providerId === undefined ? {} : { providerId: input.providerId }),
|
|
445
|
+
}),
|
|
225
446
|
}, { interactive: false });
|
|
226
447
|
const payload = await readJson(response);
|
|
227
448
|
if (!response.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-sandbox.js","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fleet-sandbox.js","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C,MAAM,0BAA0B,GAAG,iEAAiE,CAAC;AACrG,MAAM,wBAAwB,GAC5B,+EAA+E,CAAC;AAClF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AAC9E,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAClG,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAC9C,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,gEAAgE;AAChE,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAC1C,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAgBzC;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,gBAAgB,CAAU;IAC1B,SAAS,CAAU;IACnB,QAAQ,CAAU;IAClB,UAAU,CAA+B;IACzC,cAAc,CAAU;IAEjC,YACE,OAAe,EACf,WAOI,EAAE;QAEN,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC;IACzD,CAAC;CACF;AAED,MAAM,sCAAuC,SAAQ,KAAK;CAAG;AAuC7D,MAAM,gCAAgC,GAA2C;IAC/E,SAAS;IACT,KAAK;IACL,QAAQ;IACR,WAAW;IACX,SAAS;IACT,cAAc;CACf,CAAC;AA8DF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,UAAU,CAAC,OAAmB,EAAE,GAAW;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,KAAa;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAC5B,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,IAAI;QACX,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,CAAC;QACnD,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,wBAAwB,CAAC;IACrG,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC7D,IAAI,CAAC,eAAe,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,OAAmB,EAAE,GAAW;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB,EAAE,GAAW,EAAE,OAAe;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,wBAAwB,GAAG,GAAG,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CACpC,UAAmD,EACnD,MAA6C;IAE7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,kBAAkB,IAAI,MAAM,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACrG,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,0BAA0B,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CACb,uCAAuC,UAAU,uCAAuC,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAwC,EAAE,gBAAwB;IACvF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AAC3F,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAkB;IACxC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,QAAkB,EAAE,OAAgB;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,KAAK,CAAC,mEAAmE,MAAM,GAAG,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,KAAK,CAAC,wDAAwD,MAAM,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;QAC/D,OAAO,IAAI,KAAK,CACd,6CAA6C,MAAM,IACjD,UAAU,CAAC,CAAC,CAAC,gBAAgB,UAAU,WAAW,CAAC,CAAC,CAAC,EACvD,EAAE,CACH,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC;QACzF,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IACxB,OAAO,IAAI,KAAK,CACd,sBAAsB,CAAC,aAAa,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB,EAAE,GAAW,EAAE,OAAe;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,wBAAwB,GAAG,GAAG,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAmC;IAIlE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,GACf,KAAK,CAAC,eAAe,KAAK,oBAAoB,IAAI,KAAK,CAAC,eAAe,KAAK,6BAA6B,CAAC;IAC5G,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,YAAY,GAAG,iBAAiB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACvE,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,2DAA2D,YAAY,gDAAgD,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,IAA4D,EAC5D,MAAmB;IAKnB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CAC7D,IAAI,EACJ,sBAAsB,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAC/D,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EACzB,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,aAAa,CAAC,6BAA6B,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAClG,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;IACjG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO;QACL,gBAAgB;QAChB,IAAI,EAAE,UAAU;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,OAAmB,EACnB,sBAA+B;IAE/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,gCAAgC,CAAC,QAAQ,CAAC,KAAoC,CAAC,EAAE,CAAC;QACpF,OAAO,KAAoC,CAAC;IAC9C,CAAC;IACD,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAmB,EAAE,iBAAyB;IACnF,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAC9E,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;QACpC,MAAM,IAAI,sCAAsC,CAC9C,4BAA4B,SAAS,mCAAmC,iBAAiB,GAAG,CAC7F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,gBAAwB,EACxB,iBAA0B,EAC1B,gBAAyB,EACzB,mBAAiD;IAEjD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5F,0EAA0E;IAC1E,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,6BAA6B,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC5E,IAAI,iBAAiB,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACvG,MAAM,IAAI,sCAAsC,CAC9C,2BAA2B,QAAQ,kCAAkC,gBAAgB,GAAG,CACzF,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,mBAAmB,KAAK,SAAS,CAAC,CAAC;IAC9E,IAAI,mBAAmB,KAAK,SAAS,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,0CAA0C,mBAAmB,GAAG;YAClE,CAAC,CAAC,2BAA2B,UAAU,kCAAkC,mBAAmB,GAAG,CAClG,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC9E,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;QAC5F,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxG,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,WAAW,KAAK,gBAAgB,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QACD,6BAA6B,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO;YACP,gBAAgB;YAChB,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,CAAC;YAChE,QAAQ;YACR,SAAS;YACT,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC;YACjE,gBAAgB;YAChB,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;YAC7D,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAC3C,CAAC,CAAC,EAAE,kBAAkB,EAAE,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE;gBACnE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxG,6BAA6B,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO;YACP,gBAAgB;YAChB,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,CAAC;YAChE,QAAQ;YACR,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,CAAC;YAChE,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,IAAI;YACzD,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI;YACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,sBAAsB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC9E,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;QAC5F,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxG,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,WAAW,KAAK,gBAAgB,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QACD,OAAO;YACL,OAAO;YACP,gBAAgB;YAChB,SAAS;YACT,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC;YACjE,gBAAgB;YAChB,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;YAC7D,QAAQ;YACR,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC;YACpE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC1E,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAmC,EACnC,UAA2C,EAAE;IAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9F,IAAI,CAAC,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACzG,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;QACzC,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACjE,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,CACtC,QAAQ,CAAC,IAAI,EACb,oCAAoC,EACpC;YACE,MAAM,EAAE,MAAM;YACd,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,WAAW,EAAE,QAAQ,CAAC,gBAAgB;gBACtC,kBAAkB;gBAClB,GAAG,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;gBAC5F,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC7E,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5F,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5F,CAAC;SACH,EACD,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,+BAA+B,CACvC,sBAAsB,CACpB,kEACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,EACD;YACE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,GAAG,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;YAC5F,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,KAAK;SACb,CACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,IACE,eAAe,CAAC,SAAS,KAAK,SAAS;YACvC,iBAAiB,KAAK,SAAS;YAC/B,iBAAiB,KAAK,eAAe,CAAC,SAAS,EAC/C,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,sCAAsC,CACzD,4BAA4B,iBAAiB,mCAAmC,eAAe,CAAC,SAAS,GAAG,CAC7G,CAAC;YACF,MAAM,IAAI,+BAA+B,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1D,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;gBACjF,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC3E,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,6BAA6B,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9E,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,+DAA+D;QAC/D,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,IAAI,+BAA+B,CAAC,KAAK,CAAC,OAAO,EAAE;gBACvD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,GAAG,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;gBAC5F,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;gBACjF,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC3E,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,+BAA+B,CAAC,KAAK,CAAC,OAAO,EAAE;gBACvD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,GAAG,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;gBAC5F,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;gBACjF,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC3E,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,qBAAqB,CAC1B,OAAO,EACP,QAAQ,CAAC,gBAAgB,EACzB,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,IAAI,EACpB,KAAK,CAAC,UAAU,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,+BAA+B,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2CAA2C,EACpF;YACE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,GAAG,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;YAC5F,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;YACjF,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3E,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,KAAK;SACb,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAmC,EACnC,UAA2C,EAAE;IAE7C,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAEtG,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;QACzC,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,CAC3C,OAAO,CAAC,IAAI,EACZ,+BAA+B,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAC9D;QACE,MAAM,EAAE,QAAQ;QAChB,MAAM;QACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,WAAW,EAAE,gBAAgB;YAC7B,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SAC5E,CAAC;KACH,EACD,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,aAAa,CAAC,0BAA0B,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,11 @@ export { runWorkflow, scheduleWorkflow, listWorkflowSchedules, getRunStatus, get
|
|
|
7
7
|
export { connectProvider, getProviderHelpText, normalizeProvider, type ConnectProviderIo, type ConnectProviderOptions, type ConnectProviderResult, } from './connect.js';
|
|
8
8
|
export { createWorkspace, issueWorkspaceToken, resolveActiveWorkspace } from './workspaces.js';
|
|
9
9
|
export { redactCredentialValues } from './redact.js';
|
|
10
|
-
export { ensureCloudFleetSandbox, deleteCloudFleetSandbox, CloudFleetSandboxProvisionError, type EnsureCloudFleetSandboxInput, type EnsureCloudFleetSandboxResult, type CloudFleetSandboxReady, type CloudFleetSandboxReused, type CloudFleetSandboxProvisioningTimeout, type DeleteCloudFleetSandboxInput, type CloudFleetSandboxRequestOptions, } from './fleet-sandbox.js';
|
|
10
|
+
export { ensureCloudFleetSandbox, deleteCloudFleetSandbox, CloudFleetSandboxProvisionError, normalizeRelaycastTarget, CANONICAL_RELAYCAST_ORIGIN, AGENT37_RELAYCAST_ORIGIN, type EnsureCloudFleetSandboxInput, type EnsureCloudFleetSandboxResult, type CloudFleetSandboxReady, type CloudFleetSandboxReused, type CloudFleetSandboxProvisioningTimeout, type CloudFleetSandboxProviderId, type CloudFleetSandboxWorkloadProfile, type DeleteCloudFleetSandboxInput, type CloudFleetSandboxRequestOptions, type CloudFleetRelaycastRoute, type CloudFleetRelaycastTarget, } from './fleet-sandbox.js';
|
|
11
11
|
export { acknowledgeCloudWorkerAssignment, cloudWorkerStateDir, cloudWorkerStorePath, downloadCloudWorkerAssignmentStorage, headCloudWorkerAssignmentStorage, readCloudWorkerStore, registerCloudWorker, reportCloudWorkerAssignmentStatus, resolveCloudWorkerRecord, resolveWorkerWorkflowPayload, runCloudWorkerLoop, sendCloudWorkerHeartbeat, streamCloudWorkerQueue, upsertCloudWorkerRecord, writeCloudWorkerStore, type CloudWorkerLoopOptions, type CloudWorkerRecord, type CloudWorkerStore, type ExecuteWorkerAssignment, type WorkAssignmentRecord, type WorkerFileType, type WorkerQueueEvent, type WorkerStatusDetail, type WorkerWorkflowPayload, type WorkerWorkflowRef, } from './worker.js';
|
|
12
12
|
export { enrollFleetNode, fleetNodeEnrollmentStorePath, readFleetNodeEnrollmentStore, writeFleetNodeEnrollmentStore, upsertFleetNodeEnrollment, resolveActiveFleetNodeEnrollment, type EnrollFleetNodeInput, type FleetNodeEnrollment, type FleetNodeEnrollmentRecord, type FleetNodeEnrollmentStore, } from './fleet.js';
|
|
13
13
|
export { activeWorkspaceKey, readWorkspaceStore, resolveActiveWorkspaceKey, setActiveWorkspace, setWorkspaceKey, switchWorkspace, validateWorkspaceName, workspaceStorePath, writeWorkspaceStore, type WorkspaceStore, } from './workspace-store.js';
|
|
14
|
-
export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, type ProjectWorkspaceSession, type ResolveWorkspaceKeyOptions, type WorkspaceKeyFileSystem, type WorkspaceKeySource, type WorkspaceSelection, } from './project-workspace-key.js';
|
|
14
|
+
export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, writeProjectWorkspaceTargetIfSelectionCurrent, type ProjectWorkspaceSession, type ResolveWorkspaceKeyOptions, type WorkspaceKeyFileSystem, type WorkspaceKeySource, type WorkspaceSelection, } from './project-workspace-key.js';
|
|
15
15
|
export { deployProactiveAgent, listProactiveAgents, inspectProactiveAgent, undeployProactiveAgent, createWorkspaceSecret, getWorkspaceSecret, deleteWorkspaceSecret, } from './proactive-runtime.js';
|
|
16
16
|
export { runInteractiveSession, formatShellInvocation, wrapWithLaunchCheckpoint, type SshConnectionInfo, type InteractiveSessionOptions, type InteractiveSessionResult, } from './lib/ssh-interactive.js';
|
|
17
17
|
export { loadSSH2, createAskpassScript, buildSystemSshArgs, DEFAULT_SSH_RUNTIME, type AuthSshRuntime, } from './lib/ssh-runtime.js';
|
|
@@ -21,5 +21,5 @@ export { defaultPermissionsForPreset, expandPreset, globsToScopes, compileAgentP
|
|
|
21
21
|
export { DEFAULT_WORKFLOW_TOKEN_TTL_SECONDS, DEFAULT_ADMIN_AGENT_NAME, DEFAULT_ADMIN_SCOPES, mintAgentToken, type TokenClaims, } from './token.js';
|
|
22
22
|
export { createLocalJwks, createLocalJwksKeyPair, exportPrivateKeyPem, importPrivateKeyPem, RELAYAUTH_JWKS_URL_ENV, RELAYAUTH_JWT_KID_ENV, RELAYAUTH_JWT_PRIVATE_KEY_PEM_ENV, type LocalJwks, type LocalJwksKeyPair, type LocalJwksSigningKey, } from './local-jwks.js';
|
|
23
23
|
export { PermissionAuditLog, getDefaultPermissionAuditPath } from './audit.js';
|
|
24
|
-
export { type StoredAuth, CloudAuthError, type CloudAuthErrorCode, type CloudSession, type CloudSessionOptions, type WhoAmIResponse, type AuthSessionResponse, type ActiveWorkspaceDescriptor, type ActiveWorkspaceUrls, type WorkspaceCreateResponse, type WorkspaceTokenIssueResponse, type WorkspaceTokenRecord, type ProactiveDeploymentResponse, type ProactiveAgentRecord, type WorkspaceSecretRecord, type WorkflowFileType, type RunWorkflowResponse, type WorkflowSchedule, type ScheduleWorkflowOptions, type WorkflowLogsResponse, type SyncPatchResponse, SUPPORTED_PROVIDERS, REFRESH_WINDOW_MS, REFRESH_TOKEN_WINDOW_MS, DEFAULT_REFRESH_TIMEOUT_MS, AUTH_FILE_PATH, defaultApiUrl, isSupportedProvider, } from './types.js';
|
|
24
|
+
export { type StoredAuth, CloudAuthError, type CloudAuthErrorCode, type CloudSession, type CloudSessionOptions, type WhoAmIResponse, type AuthSessionResponse, type ActiveWorkspaceDescriptor, type ActiveWorkspaceUrls, type WorkspaceCreateResponse, type WorkspaceTokenIssueResponse, type WorkspaceTokenRecord, type ProactiveDeploymentResponse, type ProactiveAgentRecord, type WorkspaceSecretRecord, type WorkflowFileType, type RelayflowVersion, type RunWorkflowOptions, type RunWorkflowResponse, type WorkflowSchedule, type ScheduleWorkflowOptions, type WorkflowLogsResponse, type SyncPatchResponse, SUPPORTED_PROVIDERS, REFRESH_WINDOW_MS, REFRESH_TOKEN_WINDOW_MS, DEFAULT_REFRESH_TIMEOUT_MS, AUTH_FILE_PATH, defaultApiUrl, isSupportedProvider, } from './types.js';
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|