@agent-relay/cloud 11.10.4 → 11.11.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,3 +1,10 @@
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;
@@ -26,6 +33,8 @@ export declare class CloudFleetSandboxProvisionError extends Error {
26
33
  export type EnsureCloudFleetSandboxInput = {
27
34
  /** Cloud UUID or unified rw_* workspace id. */
28
35
  workspaceId: string;
36
+ /** Caller-declared one-time Cloud identity used to resume a cut-off provision. */
37
+ sandboxId?: string;
29
38
  name?: string;
30
39
  requiredCapability: string;
31
40
  maxAgents?: number;
@@ -59,7 +68,10 @@ export type CloudFleetSandboxReady = {
59
68
  nodeId: string;
60
69
  nodeName: string;
61
70
  sandboxId: string;
71
+ providerSandboxId?: string;
62
72
  relayWorkspaceId: string;
73
+ /** Closed server-owned Relaycast contract when Cloud returned one. Required for Agent37. */
74
+ relaycastTarget?: CloudFleetRelaycastTarget;
63
75
  relayfileMounted: boolean;
64
76
  relayfileMountPath?: string;
65
77
  providerId?: CloudFleetSandboxProviderId;
@@ -73,12 +85,16 @@ export type CloudFleetSandboxReused = {
73
85
  activeAgents: number | null;
74
86
  maxAgents: number | null;
75
87
  providerId?: CloudFleetSandboxProviderId;
88
+ /** Closed server-owned Relaycast contract when Cloud returned one. Required for Agent37. */
89
+ relaycastTarget?: CloudFleetRelaycastTarget;
76
90
  };
77
91
  export type CloudFleetSandboxProvisioningTimeout = {
78
92
  outcome: 'provisioning_timeout';
79
93
  cloudWorkspaceId: string;
80
94
  sandboxId: string;
95
+ providerSandboxId?: string;
81
96
  relayWorkspaceId: string;
97
+ relaycastTarget?: CloudFleetRelaycastTarget;
82
98
  nodeName: string;
83
99
  waitedMs: number;
84
100
  providerId?: CloudFleetSandboxProviderId;
@@ -89,6 +105,15 @@ export type DeleteCloudFleetSandboxInput = {
89
105
  sandboxId: string;
90
106
  providerId?: CloudFleetSandboxProviderId;
91
107
  };
108
+ export type CloudFleetRelaycastRoute = 'canonical' | 'agent37-isolated';
109
+ export type CloudFleetRelaycastTarget = {
110
+ route: CloudFleetRelaycastRoute;
111
+ baseUrl: string;
112
+ workspaceId: string;
113
+ relaycastApiKey: string;
114
+ };
115
+ /** Validate Cloud's closed Relaycast route, identity, and scoped credential contract. */
116
+ export declare function normalizeRelaycastTarget(value: unknown): CloudFleetRelaycastTarget;
92
117
  /** Resolve a Relay workspace in Cloud, provision/reuse a node, and wait for readiness. */
93
118
  export declare function ensureCloudFleetSandbox(input: EnsureCloudFleetSandboxInput, options?: CloudFleetSandboxRequestOptions): Promise<EnsureCloudFleetSandboxResult>;
94
119
  /** Best-effort-safe deletion for a Cloud-owned fleet sandbox. */
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-sandbox.d.ts","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-sandbox.d.ts","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,15 @@ 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 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]);
5
14
  const DEFAULT_RESOLUTION_TIMEOUT_MS = 120_000;
6
15
  // Mounted provisioning can spend up to 240s completing the initial Relayfile
7
16
  // sync, then up to 90s waiting for the enrolled node to report ready. Leave a
@@ -30,6 +39,8 @@ export class CloudFleetSandboxProvisionError extends Error {
30
39
  this.outcomeUnknown = identity.outcomeUnknown === true;
31
40
  }
32
41
  }
42
+ class CloudFleetSandboxIdentityMismatchError extends Error {
43
+ }
33
44
  const CLOUD_FLEET_SANDBOX_PROVIDER_IDS = [
34
45
  'daytona',
35
46
  'e2b',
@@ -45,6 +56,53 @@ function readString(payload, key) {
45
56
  const value = payload[key];
46
57
  return typeof value === 'string' && value.trim() ? value.trim() : undefined;
47
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
+ }
48
106
  function readNumber(payload, key) {
49
107
  const value = payload[key];
50
108
  return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
@@ -55,6 +113,22 @@ function requiredNumber(payload, key, context) {
55
113
  throw new Error(`${context} response is missing ${key}.`);
56
114
  return value;
57
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
+ }
58
132
  function boundedSignal(options, defaultTimeoutMs) {
59
133
  const timeoutMs = options.timeoutMs ?? defaultTimeoutMs;
60
134
  if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
@@ -93,6 +167,39 @@ function requiredString(payload, key, context) {
93
167
  throw new Error(`${context} response is missing ${key}.`);
94
168
  return value;
95
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
+ }
96
203
  async function resolveCloudWorkspaceId(workspaceId, auth, signal) {
97
204
  const { response, auth: activeAuth } = await authorizedApiFetch(auth, `/api/v1/workspaces/${encodeURIComponent(workspaceId)}/resolve`, { method: 'GET', signal }, { interactive: false });
98
205
  const payload = await readJson(response);
@@ -121,18 +228,26 @@ function readProviderId(payload, exactProviderRequested) {
121
228
  }
122
229
  return undefined;
123
230
  }
124
- function cleanupProviderId(payload, requestedProviderId) {
125
- const payloadProviderId = readString(payload, 'providerId');
126
- return payloadProviderId &&
127
- CLOUD_FLEET_SANDBOX_PROVIDER_IDS.includes(payloadProviderId)
128
- ? payloadProviderId
129
- : requestedProviderId;
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
+ }
130
236
  }
131
- function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
237
+ function normalizeEnsureResult(payload, cloudWorkspaceId, expectedSandboxId, expectedNodeName, requestedProviderId) {
132
238
  if (!isObject(payload))
133
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
+ }
134
246
  const outcome = readString(payload, 'outcome');
135
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
+ }
136
251
  const providerId = readProviderId(payload, requestedProviderId !== undefined);
137
252
  if (requestedProviderId !== undefined && providerId !== requestedProviderId) {
138
253
  throw new Error(providerId === undefined
@@ -143,13 +258,23 @@ function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
143
258
  if (typeof payload.relayfileMounted !== 'boolean') {
144
259
  throw new Error('Cloud fleet sandbox response is missing relayfileMounted.');
145
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);
146
269
  return {
147
270
  outcome,
148
271
  cloudWorkspaceId,
149
272
  nodeId: requiredString(payload, 'nodeId', 'Cloud fleet sandbox'),
150
273
  nodeName,
151
- sandboxId: requiredString(payload, 'sandboxId', 'Cloud fleet sandbox'),
152
- relayWorkspaceId: requiredString(payload, 'relayWorkspaceId', 'Cloud fleet sandbox'),
274
+ sandboxId,
275
+ ...(providerSandboxId === undefined ? {} : { providerSandboxId }),
276
+ relayWorkspaceId,
277
+ ...(relaycastTarget === undefined ? {} : { relaycastTarget }),
153
278
  relayfileMounted: payload.relayfileMounted,
154
279
  ...(providerId === undefined ? {} : { providerId }),
155
280
  ...(readString(payload, 'relayfileMountPath')
@@ -158,6 +283,8 @@ function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
158
283
  };
159
284
  }
160
285
  if (outcome === 'reused') {
286
+ const relaycastTarget = payload.relaycastTarget === undefined ? undefined : normalizeRelaycastTarget(payload.relaycastTarget);
287
+ assertProviderRelaycastTarget(providerId, relaycastTarget);
161
288
  return {
162
289
  outcome,
163
290
  cloudWorkspaceId,
@@ -167,14 +294,24 @@ function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
167
294
  activeAgents: readNumber(payload, 'activeAgents') ?? null,
168
295
  maxAgents: readNumber(payload, 'maxAgents') ?? null,
169
296
  ...(providerId === undefined ? {} : { providerId }),
297
+ ...(relaycastTarget === undefined ? {} : { relaycastTarget }),
170
298
  };
171
299
  }
172
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
+ }
173
308
  return {
174
309
  outcome,
175
310
  cloudWorkspaceId,
176
- sandboxId: requiredString(payload, 'sandboxId', 'Cloud fleet sandbox'),
177
- relayWorkspaceId: requiredString(payload, 'relayWorkspaceId', 'Cloud fleet sandbox'),
311
+ sandboxId,
312
+ ...(providerSandboxId === undefined ? {} : { providerSandboxId }),
313
+ relayWorkspaceId,
314
+ ...(relaycastTarget === undefined ? {} : { relaycastTarget }),
178
315
  nodeName,
179
316
  waitedMs: requiredNumber(payload, 'waitedMs', 'Cloud fleet sandbox'),
180
317
  ...(providerId === undefined ? {} : { providerId }),
@@ -190,6 +327,7 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
190
327
  throw new Error('A workspace ID is required to provision a fleet sandbox.');
191
328
  if (!requiredCapability)
192
329
  throw new Error('A spawn capability is required to provision a fleet sandbox.');
330
+ const sandboxIdentity = validateSandboxIdentity(input);
193
331
  if (input.relayfilePaths !== undefined && input.relayfilePaths.length === 0) {
194
332
  throw new Error('At least one Relayfile subtree path is required when relayfilePaths is provided.');
195
333
  }
@@ -208,7 +346,8 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
208
346
  body: JSON.stringify({
209
347
  workspaceId: resolved.cloudWorkspaceId,
210
348
  requiredCapability,
211
- ...(input.name ? { name: input.name } : {}),
349
+ ...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
350
+ ...(sandboxIdentity.name === undefined ? {} : { name: sandboxIdentity.name }),
212
351
  ...(input.maxAgents !== undefined ? { maxAgents: input.maxAgents } : {}),
213
352
  ...(input.mountRelayfile !== undefined ? { mountRelayfile: input.mountRelayfile } : {}),
214
353
  ...(input.relayfilePaths === undefined ? {} : { relayfilePaths: [...input.relayfilePaths] }),
@@ -223,6 +362,7 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
223
362
  catch (error) {
224
363
  throw new CloudFleetSandboxProvisionError(redactCredentialValues(`Cloud fleet sandbox request ended without a complete response: ${error instanceof Error ? error.message : String(error)}`), {
225
364
  cloudWorkspaceId: resolved.cloudWorkspaceId,
365
+ ...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
226
366
  ...(input.name ? { nodeName: input.name } : {}),
227
367
  ...(input.providerId ? { providerId: input.providerId } : {}),
228
368
  outcomeUnknown: true,
@@ -231,33 +371,55 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
231
371
  }
232
372
  const payload = await readJson(response);
233
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
+ }
234
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
+ }
235
402
  if (isObject(payload) && readString(payload, 'sandboxId')) {
236
- const providerId = cleanupProviderId(payload, input.providerId);
237
403
  throw new CloudFleetSandboxProvisionError(error.message, {
238
404
  cloudWorkspaceId: resolved.cloudWorkspaceId,
239
- sandboxId: readString(payload, 'sandboxId'),
240
- nodeName: readString(payload, 'nodeName') ?? input.name,
241
- ...(providerId === undefined ? {} : { providerId }),
405
+ ...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
406
+ ...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
407
+ ...(input.providerId === undefined ? {} : { providerId: input.providerId }),
408
+ outcomeUnknown: true,
242
409
  cause: error,
243
410
  });
244
411
  }
245
412
  throw error;
246
413
  }
247
414
  try {
248
- return normalizeEnsureResult(payload, resolved.cloudWorkspaceId, input.providerId);
415
+ return normalizeEnsureResult(payload, resolved.cloudWorkspaceId, sandboxIdentity.sandboxId, sandboxIdentity.name, input.providerId);
249
416
  }
250
417
  catch (error) {
251
- const providerId = isObject(payload) ? cleanupProviderId(payload, input.providerId) : input.providerId;
252
418
  throw new CloudFleetSandboxProvisionError(error instanceof Error ? error.message : 'Cloud fleet sandbox response was invalid.', {
253
419
  cloudWorkspaceId: resolved.cloudWorkspaceId,
254
- ...(isObject(payload) && readString(payload, 'sandboxId')
255
- ? { sandboxId: readString(payload, 'sandboxId') }
256
- : {}),
257
- ...(isObject(payload) && (readString(payload, 'nodeName') ?? input.name)
258
- ? { nodeName: readString(payload, 'nodeName') ?? input.name }
259
- : {}),
260
- ...(providerId === undefined ? {} : { providerId }),
420
+ ...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
421
+ ...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
422
+ ...(input.providerId === undefined ? {} : { providerId: input.providerId }),
261
423
  outcomeUnknown: true,
262
424
  cause: error,
263
425
  });
@@ -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 CloudFleetSandboxProviderId, type CloudFleetSandboxWorkloadProfile, 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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,11 +7,11 @@ export { runWorkflow, scheduleWorkflow, listWorkflowSchedules, getRunStatus, get
7
7
  export { connectProvider, getProviderHelpText, normalizeProvider, } from './connect.js';
8
8
  export { createWorkspace, issueWorkspaceToken, resolveActiveWorkspace } from './workspaces.js';
9
9
  export { redactCredentialValues } from './redact.js';
10
- export { ensureCloudFleetSandbox, deleteCloudFleetSandbox, CloudFleetSandboxProvisionError, } from './fleet-sandbox.js';
10
+ export { ensureCloudFleetSandbox, deleteCloudFleetSandbox, CloudFleetSandboxProvisionError, normalizeRelaycastTarget, CANONICAL_RELAYCAST_ORIGIN, AGENT37_RELAYCAST_ORIGIN, } from './fleet-sandbox.js';
11
11
  export { acknowledgeCloudWorkerAssignment, cloudWorkerStateDir, cloudWorkerStorePath, downloadCloudWorkerAssignmentStorage, headCloudWorkerAssignmentStorage, readCloudWorkerStore, registerCloudWorker, reportCloudWorkerAssignmentStatus, resolveCloudWorkerRecord, resolveWorkerWorkflowPayload, runCloudWorkerLoop, sendCloudWorkerHeartbeat, streamCloudWorkerQueue, upsertCloudWorkerRecord, writeCloudWorkerStore, } from './worker.js';
12
12
  export { enrollFleetNode, fleetNodeEnrollmentStorePath, readFleetNodeEnrollmentStore, writeFleetNodeEnrollmentStore, upsertFleetNodeEnrollment, resolveActiveFleetNodeEnrollment, } from './fleet.js';
13
13
  export { activeWorkspaceKey, readWorkspaceStore, resolveActiveWorkspaceKey, setActiveWorkspace, setWorkspaceKey, switchWorkspace, validateWorkspaceName, workspaceStorePath, writeWorkspaceStore, } from './workspace-store.js';
14
- export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, } from './project-workspace-key.js';
14
+ export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, writeProjectWorkspaceTargetIfSelectionCurrent, } 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, } from './lib/ssh-interactive.js';
17
17
  export { loadSSH2, createAskpassScript, buildSystemSshArgs, DEFAULT_SSH_RUNTIME, } from './lib/ssh-runtime.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,13 @@ export interface ProjectWorkspaceSession {
8
8
  * source (a stored Fleet enrollment, say) points at a different workspace.
9
9
  */
10
10
  workspaceId?: string;
11
+ /** Last server-selected Relaycast route for follow-up commands in this session. */
12
+ relaycastRoute?: 'canonical' | 'agent37-isolated';
13
+ relaycastBaseUrl?: string;
14
+ /** Route-scoped transport credential; the canonical Cloud workspace key remains `workspaceKey`. */
15
+ relaycastApiKey?: string;
11
16
  }
17
+ export type ProjectWorkspaceSessionMetadata = Omit<ProjectWorkspaceSession, 'workspaceKey'>;
12
18
  export type WorkspaceKeySource = 'flag' | 'env' | 'project' | 'store';
13
19
  export interface ResolveWorkspaceKeyOptions {
14
20
  workspaceKey?: string;
@@ -36,6 +42,13 @@ export interface WorkspaceSelection {
36
42
  origin: string;
37
43
  /** Workspace id this selection is known to address, when previously recorded. */
38
44
  workspaceId?: string;
45
+ relaycastRoute?: 'canonical' | 'agent37-isolated';
46
+ relaycastBaseUrl?: string;
47
+ relaycastApiKey?: string;
48
+ /** Project session directory that can durably carry a server-selected target. */
49
+ projectDataDir?: string;
50
+ /** Whether that project session existed when this selection was captured. */
51
+ projectSessionPresent?: boolean;
39
52
  }
40
53
  /** Absolute path to the workspace key recorded by `agent-relay node up`. */
41
54
  export declare function projectWorkspaceKeyPath(dataDir: string): string;
@@ -50,7 +63,23 @@ export declare function readProjectWorkspaceSession(dataDir: string, fileSystem?
50
63
  export declare function writeProjectWorkspaceKey(dataDir: string, workspaceKey: string | undefined, options?: {
51
64
  enrolledNodeId?: string;
52
65
  workspaceId?: string;
66
+ relaycastRoute?: 'canonical' | 'agent37-isolated';
67
+ relaycastBaseUrl?: string;
68
+ relaycastApiKey?: string;
53
69
  }): void;
70
+ /** Atomically persist a Relaycast target only if the captured project selection is still current. */
71
+ export declare function writeProjectWorkspaceTargetIfSelectionCurrent(dataDir: string, selection: WorkspaceSelection, target: Required<Pick<ProjectWorkspaceSession, 'workspaceId' | 'relaycastRoute' | 'relaycastBaseUrl' | 'relaycastApiKey'>>): boolean;
72
+ /**
73
+ * Rewrite a project session while retaining server-selected metadata when the
74
+ * workspace key is unchanged. A changed key is an intentional rebind, so no
75
+ * metadata from the old workspace is carried across.
76
+ *
77
+ * The low-level writer above deliberately replaces the complete record. This
78
+ * helper is for callers that update one part of an existing session (for
79
+ * example, linking an enrolled node) and must not accidentally discard the
80
+ * Relaycast target or workspace identity recorded alongside the key.
81
+ */
82
+ export declare function writeProjectWorkspaceKeyPreservingSession(dataDir: string, workspaceKey: string | undefined, options?: ProjectWorkspaceSessionMetadata): void;
54
83
  /**
55
84
  * Resolve which Relay workspace this process addresses.
56
85
  *
@@ -78,7 +107,7 @@ export declare function resolveWorkspaceSelection(options?: ResolveWorkspaceKeyO
78
107
  * higher (repository-pin) steps and must not re-read the pin through `node:fs`.
79
108
  * It is never correct to consult this ahead of steps 1–3.
80
109
  */
81
- export declare function resolveActiveWorkspaceSelection(env?: NodeJS.ProcessEnv): WorkspaceSelection | undefined;
110
+ export declare function resolveActiveWorkspaceSelection(env?: NodeJS.ProcessEnv, projectDataDir?: string): WorkspaceSelection | undefined;
82
111
  /** Resolve the selected workspace key and its source. See {@link resolveWorkspaceSelection}. */
83
112
  export declare function resolveWorkspaceKeyWithSource(options?: ResolveWorkspaceKeyOptions): {
84
113
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"project-workspace-key.d.ts","sourceRoot":"","sources":["../src/project-workspace-key.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;CAClE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,sBAA2B,GACtC,MAAM,GAAG,SAAS,CAEpB;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,sBAA2B,GACtC,uBAAuB,GAAG,SAAS,CAgBrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9D,IAAI,CAyCN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,kBAAkB,GAAG,SAAS,CAsBhC;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,kBAAkB,GAAG,SAAS,CAWhC;AAED,gGAAgG;AAChG,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,0BAA+B,GACvC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAAG,SAAS,CAGzD;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,GAAG,SAAS,CAEhG"}
1
+ {"version":3,"file":"project-workspace-key.d.ts","sourceRoot":"","sources":["../src/project-workspace-key.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,cAAc,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mGAAmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE5F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;CAClE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,sBAA2B,GACtC,MAAM,GAAG,SAAS,CAEpB;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,sBAA2B,GACtC,uBAAuB,GAAG,SAAS,CAyBrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GACL,IAAI,CAIN;AAiMD,qGAAqG;AACrG,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,QAAQ,CACd,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC,CACzG,GACA,OAAO,CA0BT;AAED;;;;;;;;;GASG;AACH,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,GAAE,+BAAoC,GAC5C,IAAI,CAgCN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,kBAAkB,GAAG,SAAS,CAkEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,cAAc,CAAC,EAAE,MAAM,GACtB,kBAAkB,GAAG,SAAS,CAYhC;AAED,gGAAgG;AAChG,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,0BAA+B,GACvC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAAG,SAAS,CAGzD;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,GAAG,SAAS,CAEhG"}
@@ -4,6 +4,12 @@ import path from 'node:path';
4
4
  import { getProjectPaths } from '@agent-relay/config';
5
5
  import { readWorkspaceStore, workspaceStorePath } from './workspace-store.js';
6
6
  const PROJECT_WORKSPACE_KEY_FILENAME = 'workspace-key.json';
7
+ const PROJECT_WORKSPACE_LOCK_SUFFIX = '.lock';
8
+ const PROJECT_WORKSPACE_LOCK_TIMEOUT_MS = 2_000;
9
+ const PROJECT_WORKSPACE_LOCK_STALE_MS = 30_000;
10
+ const PROJECT_WORKSPACE_LOCK_RETRY_MS = 10;
11
+ const PROJECT_WORKSPACE_LOCK_WAIT = new Int32Array(new SharedArrayBuffer(4));
12
+ const PROJECT_WORKSPACE_LOCK_OWNER_VERSION = 1;
7
13
  /** Workspace-key environment aliases, highest precedence first. */
8
14
  const WORKSPACE_KEY_ENV_VARS = ['RELAY_WORKSPACE_KEY', 'AGENT_RELAY_WORKSPACE_KEY', 'RELAY_API_KEY'];
9
15
  /** Absolute path to the workspace key recorded by `agent-relay node up`. */
@@ -24,10 +30,18 @@ export function readProjectWorkspaceSession(dataDir, fileSystem = fs) {
24
30
  return undefined;
25
31
  const enrolledNodeId = trimOrUndefined(parsed.enrolledNodeId);
26
32
  const workspaceId = trimOrUndefined(parsed.workspaceId);
33
+ const relaycastRoute = parsed.relaycastRoute === 'canonical' || parsed.relaycastRoute === 'agent37-isolated'
34
+ ? parsed.relaycastRoute
35
+ : undefined;
36
+ const relaycastBaseUrl = trimOrUndefined(parsed.relaycastBaseUrl);
37
+ const relaycastApiKey = trimOrUndefined(parsed.relaycastApiKey);
27
38
  return {
28
39
  workspaceKey,
29
40
  ...(enrolledNodeId ? { enrolledNodeId } : {}),
30
41
  ...(workspaceId ? { workspaceId } : {}),
42
+ ...(relaycastRoute ? { relaycastRoute } : {}),
43
+ ...(relaycastBaseUrl ? { relaycastBaseUrl } : {}),
44
+ ...(relaycastApiKey ? { relaycastApiKey } : {}),
31
45
  };
32
46
  }
33
47
  catch {
@@ -39,11 +53,20 @@ export function readProjectWorkspaceSession(dataDir, fileSystem = fs) {
39
53
  * A blank key never clobbers a previously recorded workspace.
40
54
  */
41
55
  export function writeProjectWorkspaceKey(dataDir, workspaceKey, options = {}) {
56
+ const key = trimOrUndefined(workspaceKey);
57
+ if (!key)
58
+ return;
59
+ withProjectWorkspaceKeyLock(dataDir, () => writeProjectWorkspaceKeyUnlocked(dataDir, key, options));
60
+ }
61
+ function writeProjectWorkspaceKeyUnlocked(dataDir, workspaceKey, options = {}) {
42
62
  const key = trimOrUndefined(workspaceKey);
43
63
  if (!key)
44
64
  return;
45
65
  const enrolledNodeId = trimOrUndefined(options.enrolledNodeId);
46
66
  const workspaceId = trimOrUndefined(options.workspaceId);
67
+ const relaycastRoute = options.relaycastRoute;
68
+ const relaycastBaseUrl = trimOrUndefined(options.relaycastBaseUrl);
69
+ const relaycastApiKey = trimOrUndefined(options.relaycastApiKey);
47
70
  fs.mkdirSync(dataDir, { recursive: true, mode: 0o700 });
48
71
  const file = projectWorkspaceKeyPath(dataDir);
49
72
  // Worker threads share a PID, so include a per-write nonce as well as the PID.
@@ -52,6 +75,9 @@ export function writeProjectWorkspaceKey(dataDir, workspaceKey, options = {}) {
52
75
  workspaceKey: key,
53
76
  ...(enrolledNodeId ? { enrolledNodeId } : {}),
54
77
  ...(workspaceId ? { workspaceId } : {}),
78
+ ...(relaycastRoute ? { relaycastRoute } : {}),
79
+ ...(relaycastBaseUrl ? { relaycastBaseUrl } : {}),
80
+ ...(relaycastApiKey ? { relaycastApiKey } : {}),
55
81
  }, null, 2)}\n`;
56
82
  let fd;
57
83
  try {
@@ -80,6 +106,211 @@ export function writeProjectWorkspaceKey(dataDir, workspaceKey, options = {}) {
80
106
  throw error;
81
107
  }
82
108
  }
109
+ function withProjectWorkspaceKeyLock(dataDir, callback) {
110
+ fs.mkdirSync(dataDir, { recursive: true, mode: 0o700 });
111
+ const lockDir = `${projectWorkspaceKeyPath(dataDir)}${PROJECT_WORKSPACE_LOCK_SUFFIX}`;
112
+ const ownerToken = randomUUID();
113
+ const ownerPath = path.join(lockDir, ownerToken);
114
+ const startedAt = Date.now();
115
+ while (true) {
116
+ try {
117
+ fs.mkdirSync(lockDir, { mode: 0o700 });
118
+ try {
119
+ // The token is a child of this lock directory, so a stale holder can
120
+ // release only its own marker even if another writer has already
121
+ // removed and reacquired the directory.
122
+ fs.writeFileSync(ownerPath, JSON.stringify({
123
+ version: PROJECT_WORKSPACE_LOCK_OWNER_VERSION,
124
+ pid: process.pid,
125
+ token: ownerToken,
126
+ }), { mode: 0o600, flag: 'wx' });
127
+ }
128
+ catch (error) {
129
+ // mkdir succeeded, but this invocation never acquired a usable lock.
130
+ // Clean up only the directory it just created before propagating.
131
+ fs.rmSync(ownerPath, { force: true });
132
+ try {
133
+ fs.rmdirSync(lockDir);
134
+ }
135
+ catch (cleanupError) {
136
+ if (cleanupError.code !== 'ENOENT')
137
+ throw cleanupError;
138
+ }
139
+ throw error;
140
+ }
141
+ break;
142
+ }
143
+ catch (error) {
144
+ if (error.code !== 'EEXIST')
145
+ throw error;
146
+ }
147
+ try {
148
+ if (Date.now() - fs.statSync(lockDir).mtimeMs >= PROJECT_WORKSPACE_LOCK_STALE_MS) {
149
+ const observedLock = inspectProjectWorkspaceLock(lockDir);
150
+ if (!observedLock.ownerIsAlive) {
151
+ // Reclaim only the exact marker entries observed in this lock. A
152
+ // replacement writer can add a different marker concurrently; the
153
+ // non-recursive rmdir then leaves that replacement lock untouched.
154
+ for (const entry of observedLock.entries) {
155
+ fs.rmSync(path.join(lockDir, entry), { force: true });
156
+ }
157
+ try {
158
+ fs.rmdirSync(lockDir);
159
+ }
160
+ catch (error) {
161
+ if (error.code !== 'ENOENT' &&
162
+ error.code !== 'ENOTEMPTY') {
163
+ throw error;
164
+ }
165
+ }
166
+ continue;
167
+ }
168
+ }
169
+ }
170
+ catch (error) {
171
+ if (error.code === 'ENOENT')
172
+ continue;
173
+ throw error;
174
+ }
175
+ if (Date.now() - startedAt >= PROJECT_WORKSPACE_LOCK_TIMEOUT_MS) {
176
+ throw new Error(`Timed out waiting for the project workspace lock at ${lockDir}.`);
177
+ }
178
+ Atomics.wait(PROJECT_WORKSPACE_LOCK_WAIT, 0, 0, PROJECT_WORKSPACE_LOCK_RETRY_MS);
179
+ }
180
+ let callbackFailed = false;
181
+ try {
182
+ return callback();
183
+ }
184
+ catch (error) {
185
+ callbackFailed = true;
186
+ throw error;
187
+ }
188
+ finally {
189
+ // Remove our marker first. If the lock was declared stale and replaced
190
+ // while the callback was running, the replacement marker is different;
191
+ // rmdir then safely leaves the replacement lock in place.
192
+ if (fs.existsSync(ownerPath)) {
193
+ fs.rmSync(ownerPath, { force: true });
194
+ try {
195
+ fs.rmdirSync(lockDir);
196
+ }
197
+ catch (error) {
198
+ if (error.code !== 'ENOENT' &&
199
+ error.code !== 'ENOTEMPTY') {
200
+ if (callbackFailed) {
201
+ console.error(`Failed to release the project workspace lock at ${lockDir}.`, error);
202
+ }
203
+ else {
204
+ throw error;
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ function inspectProjectWorkspaceLock(lockDir) {
212
+ const entries = fs.readdirSync(lockDir);
213
+ let sawLiveOwner = false;
214
+ for (const entry of entries) {
215
+ let owner;
216
+ try {
217
+ owner = JSON.parse(fs.readFileSync(path.join(lockDir, entry), 'utf8'));
218
+ }
219
+ catch {
220
+ continue;
221
+ }
222
+ const pid = owner.pid;
223
+ if (owner.version !== PROJECT_WORKSPACE_LOCK_OWNER_VERSION ||
224
+ typeof pid !== 'number' ||
225
+ !Number.isInteger(pid) ||
226
+ pid <= 0 ||
227
+ typeof owner.token !== 'string' ||
228
+ owner.token !== entry) {
229
+ continue;
230
+ }
231
+ try {
232
+ process.kill(pid, 0);
233
+ sawLiveOwner = true;
234
+ }
235
+ catch (error) {
236
+ const code = error.code;
237
+ // EPERM means the process exists but is not signalable. Treat all
238
+ // errors other than ESRCH conservatively as alive.
239
+ if (code !== 'ESRCH')
240
+ sawLiveOwner = true;
241
+ }
242
+ }
243
+ return { entries, ownerIsAlive: sawLiveOwner };
244
+ }
245
+ /** Atomically persist a Relaycast target only if the captured project selection is still current. */
246
+ export function writeProjectWorkspaceTargetIfSelectionCurrent(dataDir, selection, target) {
247
+ return withProjectWorkspaceKeyLock(dataDir, () => {
248
+ const current = readProjectWorkspaceSession(dataDir);
249
+ if (selection.projectSessionPresent === false && current)
250
+ return false;
251
+ if (current &&
252
+ (current.workspaceKey !== selection.key ||
253
+ current.workspaceId !== selection.workspaceId ||
254
+ current.relaycastRoute !== selection.relaycastRoute ||
255
+ current.relaycastBaseUrl !== selection.relaycastBaseUrl ||
256
+ current.relaycastApiKey !== selection.relaycastApiKey)) {
257
+ return false;
258
+ }
259
+ if (!current && (selection.projectSessionPresent === true || selection.source === 'project')) {
260
+ return false;
261
+ }
262
+ writeProjectWorkspaceKeyUnlocked(dataDir, selection.key, {
263
+ ...(current?.enrolledNodeId ? { enrolledNodeId: current.enrolledNodeId } : {}),
264
+ workspaceId: target.workspaceId,
265
+ relaycastRoute: target.relaycastRoute,
266
+ relaycastBaseUrl: target.relaycastBaseUrl,
267
+ relaycastApiKey: target.relaycastApiKey,
268
+ });
269
+ return true;
270
+ });
271
+ }
272
+ /**
273
+ * Rewrite a project session while retaining server-selected metadata when the
274
+ * workspace key is unchanged. A changed key is an intentional rebind, so no
275
+ * metadata from the old workspace is carried across.
276
+ *
277
+ * The low-level writer above deliberately replaces the complete record. This
278
+ * helper is for callers that update one part of an existing session (for
279
+ * example, linking an enrolled node) and must not accidentally discard the
280
+ * Relaycast target or workspace identity recorded alongside the key.
281
+ */
282
+ export function writeProjectWorkspaceKeyPreservingSession(dataDir, workspaceKey, options = {}) {
283
+ const key = trimOrUndefined(workspaceKey);
284
+ if (!key)
285
+ return;
286
+ withProjectWorkspaceKeyLock(dataDir, () => {
287
+ const existing = readProjectWorkspaceSession(dataDir);
288
+ const sameWorkspace = existing?.workspaceKey === key;
289
+ const retained = sameWorkspace
290
+ ? {
291
+ ...(existing?.enrolledNodeId ? { enrolledNodeId: existing.enrolledNodeId } : {}),
292
+ ...(existing?.workspaceId ? { workspaceId: existing.workspaceId } : {}),
293
+ ...(existing?.relaycastRoute ? { relaycastRoute: existing.relaycastRoute } : {}),
294
+ ...(existing?.relaycastBaseUrl ? { relaycastBaseUrl: existing.relaycastBaseUrl } : {}),
295
+ ...(existing?.relaycastApiKey ? { relaycastApiKey: existing.relaycastApiKey } : {}),
296
+ }
297
+ : {};
298
+ writeProjectWorkspaceKeyUnlocked(dataDir, key, {
299
+ ...retained,
300
+ ...(trimOrUndefined(options.enrolledNodeId)
301
+ ? { enrolledNodeId: trimOrUndefined(options.enrolledNodeId) }
302
+ : {}),
303
+ ...(trimOrUndefined(options.workspaceId) ? { workspaceId: trimOrUndefined(options.workspaceId) } : {}),
304
+ ...(options.relaycastRoute ? { relaycastRoute: options.relaycastRoute } : {}),
305
+ ...(trimOrUndefined(options.relaycastBaseUrl)
306
+ ? { relaycastBaseUrl: trimOrUndefined(options.relaycastBaseUrl) }
307
+ : {}),
308
+ ...(trimOrUndefined(options.relaycastApiKey)
309
+ ? { relaycastApiKey: trimOrUndefined(options.relaycastApiKey) }
310
+ : {}),
311
+ });
312
+ });
313
+ }
83
314
  /**
84
315
  * Resolve which Relay workspace this process addresses.
85
316
  *
@@ -100,25 +331,67 @@ export function writeProjectWorkspaceKey(dataDir, workspaceKey, options = {}) {
100
331
  */
101
332
  export function resolveWorkspaceSelection(options = {}) {
102
333
  const env = options.env ?? process.env;
334
+ const dataDir = options.projectDataDir ?? projectDataDir(options.projectRoot);
335
+ const project = dataDir ? readProjectWorkspaceSession(dataDir, options.fileSystem ?? fs) : undefined;
103
336
  const flag = trimOrUndefined(options.workspaceKey);
104
- if (flag)
105
- return { key: flag, source: 'flag', origin: '--workspace-key' };
337
+ if (flag) {
338
+ return {
339
+ key: flag,
340
+ source: 'flag',
341
+ origin: '--workspace-key',
342
+ ...(project?.workspaceKey === flag && project.workspaceId ? { workspaceId: project.workspaceId } : {}),
343
+ ...(project?.workspaceKey === flag && project.relaycastRoute
344
+ ? { relaycastRoute: project.relaycastRoute }
345
+ : {}),
346
+ ...(project?.workspaceKey === flag && project.relaycastBaseUrl
347
+ ? { relaycastBaseUrl: project.relaycastBaseUrl }
348
+ : {}),
349
+ ...(project?.workspaceKey === flag && project.relaycastApiKey
350
+ ? { relaycastApiKey: project.relaycastApiKey }
351
+ : {}),
352
+ ...((!project || project.workspaceKey === flag) && dataDir
353
+ ? { projectDataDir: dataDir, projectSessionPresent: project !== undefined }
354
+ : {}),
355
+ };
356
+ }
106
357
  for (const name of WORKSPACE_KEY_ENV_VARS) {
107
358
  const envKey = trimOrUndefined(env[name]);
108
- if (envKey)
109
- return { key: envKey, source: 'env', origin: `$${name}` };
359
+ if (envKey) {
360
+ return {
361
+ key: envKey,
362
+ source: 'env',
363
+ origin: `$${name}`,
364
+ ...(project?.workspaceKey === envKey && project.workspaceId
365
+ ? { workspaceId: project.workspaceId }
366
+ : {}),
367
+ ...(project?.workspaceKey === envKey && project.relaycastRoute
368
+ ? { relaycastRoute: project.relaycastRoute }
369
+ : {}),
370
+ ...(project?.workspaceKey === envKey && project.relaycastBaseUrl
371
+ ? { relaycastBaseUrl: project.relaycastBaseUrl }
372
+ : {}),
373
+ ...(project?.workspaceKey === envKey && project.relaycastApiKey
374
+ ? { relaycastApiKey: project.relaycastApiKey }
375
+ : {}),
376
+ ...((!project || project.workspaceKey === envKey) && dataDir
377
+ ? { projectDataDir: dataDir, projectSessionPresent: project !== undefined }
378
+ : {}),
379
+ };
380
+ }
110
381
  }
111
- const dataDir = options.projectDataDir ?? projectDataDir(options.projectRoot);
112
- const project = dataDir ? readProjectWorkspaceSession(dataDir, options.fileSystem ?? fs) : undefined;
113
382
  if (project) {
114
383
  return {
115
384
  key: project.workspaceKey,
116
385
  source: 'project',
117
386
  origin: projectWorkspaceKeyPath(dataDir),
118
387
  ...(project.workspaceId ? { workspaceId: project.workspaceId } : {}),
388
+ ...(project.relaycastRoute ? { relaycastRoute: project.relaycastRoute } : {}),
389
+ ...(project.relaycastBaseUrl ? { relaycastBaseUrl: project.relaycastBaseUrl } : {}),
390
+ ...(project.relaycastApiKey ? { relaycastApiKey: project.relaycastApiKey } : {}),
391
+ ...(dataDir ? { projectDataDir: dataDir, projectSessionPresent: true } : {}),
119
392
  };
120
393
  }
121
- return resolveActiveWorkspaceSelection(env);
394
+ return resolveActiveWorkspaceSelection(env, dataDir);
122
395
  }
123
396
  /**
124
397
  * Step 4 of {@link resolveWorkspaceSelection} on its own: the machine-global
@@ -128,7 +401,7 @@ export function resolveWorkspaceSelection(options = {}) {
128
401
  * higher (repository-pin) steps and must not re-read the pin through `node:fs`.
129
402
  * It is never correct to consult this ahead of steps 1–3.
130
403
  */
131
- export function resolveActiveWorkspaceSelection(env = process.env) {
404
+ export function resolveActiveWorkspaceSelection(env = process.env, projectDataDir) {
132
405
  const store = readWorkspaceStore(env);
133
406
  const activeName = trimOrUndefined(store.active);
134
407
  const storeKey = activeName ? trimOrUndefined(store.workspaces[activeName]?.key) : undefined;
@@ -137,6 +410,7 @@ export function resolveActiveWorkspaceSelection(env = process.env) {
137
410
  key: storeKey,
138
411
  source: 'store',
139
412
  origin: `${workspaceStorePath(env)} (active: "${activeName}")`,
413
+ ...(projectDataDir ? { projectDataDir, projectSessionPresent: false } : {}),
140
414
  }
141
415
  : undefined;
142
416
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-workspace-key.js","sourceRoot":"","sources":["../src/project-workspace-key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-workspace-key.js","sourceRoot":"","sources":["../src/project-workspace-key.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, type ProjectWorkspaceSession, type ResolveWorkspaceKeyOptions, type WorkspaceKeyFileSystem, type WorkspaceKeySource, type WorkspaceSelection, } from './project-workspace-key.js';
1
+ export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, writeProjectWorkspaceKeyPreservingSession, writeProjectWorkspaceTargetIfSelectionCurrent, type ProjectWorkspaceSession, type ProjectWorkspaceSessionMetadata, type ResolveWorkspaceKeyOptions, type WorkspaceKeyFileSystem, type WorkspaceKeySource, type WorkspaceSelection, } from './project-workspace-key.js';
2
2
  //# sourceMappingURL=workspace-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-key.d.ts","sourceRoot":"","sources":["../src/workspace-key.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"workspace-key.d.ts","sourceRoot":"","sources":["../src/workspace-key.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,yCAAyC,EACzC,6CAA6C,EAC7C,KAAK,uBAAuB,EAC5B,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC"}
@@ -1,2 +1,2 @@
1
- export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, } from './project-workspace-key.js';
1
+ export { projectWorkspaceKeyPath, readProjectWorkspaceKey, readProjectWorkspaceSession, resolveActiveWorkspaceSelection, resolveWorkspaceKey, resolveWorkspaceKeyWithSource, resolveWorkspaceSelection, writeProjectWorkspaceKey, writeProjectWorkspaceKeyPreservingSession, writeProjectWorkspaceTargetIfSelectionCurrent, } from './project-workspace-key.js';
2
2
  //# sourceMappingURL=workspace-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-key.js","sourceRoot":"","sources":["../src/workspace-key.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,GAMzB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"workspace-key.js","sourceRoot":"","sources":["../src/workspace-key.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,yCAAyC,EACzC,6CAA6C,GAO9C,MAAM,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/cloud",
3
- "version": "11.10.4",
3
+ "version": "11.11.0",
4
4
  "engines": {
5
5
  "node": ">=22.0.0"
6
6
  },
@@ -62,7 +62,7 @@
62
62
  "test:watch": "vitest --root ../.. packages/cloud/"
63
63
  },
64
64
  "dependencies": {
65
- "@agent-relay/config": "11.10.4",
65
+ "@agent-relay/config": "11.11.0",
66
66
  "@aws-sdk/client-s3": "3.1020.0",
67
67
  "ignore": "^7.0.5",
68
68
  "tar": "^7.5.21"