@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.
@@ -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 Daytona fleet sandbox. */
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":"AAUA,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;gBAG/B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;CAST;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,aAAa,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,QAAQ,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,OAAO,EAAE,sBAAsB,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,sBAAsB,GACtB,uBAAuB,GACvB,oCAAoC,CAAC;AAEzC,MAAM,MAAM,4BAA4B,GAAG;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAgJF,0FAA0F;AAC1F,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,4BAA4B,EACnC,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,6BAA6B,CAAC,CA+ExC;AAED,yEAAyE;AACzE,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,4BAA4B,EACnC,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"fleet-sandbox.d.ts","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"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"}
@@ -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 DEFAULT_ENSURE_TIMEOUT_MS = 120_000;
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 normalizeEnsureResult(payload, cloudWorkspaceId) {
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: requiredString(payload, 'sandboxId', 'Cloud fleet sandbox'),
111
- relayWorkspaceId: requiredString(payload, 'relayWorkspaceId', 'Cloud fleet sandbox'),
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: requiredString(payload, 'sandboxId', 'Cloud fleet sandbox'),
134
- relayWorkspaceId: requiredString(payload, 'relayWorkspaceId', 'Cloud fleet sandbox'),
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, DEFAULT_ENSURE_TIMEOUT_MS);
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
- ...(input.name ? { name: input.name } : {}),
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: readString(payload, 'sandboxId'),
187
- nodeName: readString(payload, 'nodeName') ?? input.name,
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
- ...(isObject(payload) && readString(payload, 'sandboxId')
200
- ? { sandboxId: readString(payload, 'sandboxId') }
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 Daytona fleet sandbox. */
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({ workspaceId: cloudWorkspaceId }),
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