@agent-relay/cloud 11.10.3 → 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.
- package/dist/fleet-sandbox.d.ts +29 -1
- package/dist/fleet-sandbox.d.ts.map +1 -1
- package/dist/fleet-sandbox.js +198 -25
- package/dist/fleet-sandbox.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/project-workspace-key.d.ts +30 -1
- package/dist/project-workspace-key.d.ts.map +1 -1
- package/dist/project-workspace-key.js +282 -8
- package/dist/project-workspace-key.js.map +1 -1
- package/dist/workspace-key.d.ts +1 -1
- package/dist/workspace-key.d.ts.map +1 -1
- package/dist/workspace-key.js +1 -1
- package/dist/workspace-key.js.map +1 -1
- package/package.json +2 -2
package/dist/fleet-sandbox.d.ts
CHANGED
|
@@ -1,9 +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
|
};
|
|
6
|
-
export type CloudFleetSandboxProviderId = 'daytona' | 'e2b';
|
|
13
|
+
export type CloudFleetSandboxProviderId = 'daytona' | 'e2b' | 'vercel' | 'freestyle' | 'agent37' | 'microsandbox';
|
|
7
14
|
/**
|
|
8
15
|
* Carries every safe identifier Cloud returned when provisioning failed after
|
|
9
16
|
* the request may have created a billable sandbox.
|
|
@@ -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;
|
|
@@ -38,6 +47,8 @@ export type EnsureCloudFleetSandboxInput = {
|
|
|
38
47
|
forceProvision?: boolean;
|
|
39
48
|
/** Constrain provisioning to a provider that Cloud has enabled for routing. */
|
|
40
49
|
providerId?: CloudFleetSandboxProviderId;
|
|
50
|
+
/** Provider-neutral semantics; Cloud owns the provider decision. */
|
|
51
|
+
workloadProfile?: CloudFleetSandboxWorkloadProfile;
|
|
41
52
|
waitTimeoutMs?: number;
|
|
42
53
|
/**
|
|
43
54
|
* Repositories to clone into `/srv/agent-workforce/<name>` inside the
|
|
@@ -50,13 +61,17 @@ export type EnsureCloudFleetSandboxInput = {
|
|
|
50
61
|
*/
|
|
51
62
|
repos?: readonly string[];
|
|
52
63
|
};
|
|
64
|
+
export type CloudFleetSandboxWorkloadProfile = 'standard' | 'long-running-agent' | 'standard-long-running-agent';
|
|
53
65
|
export type CloudFleetSandboxReady = {
|
|
54
66
|
outcome: 'provisioned';
|
|
55
67
|
cloudWorkspaceId: string;
|
|
56
68
|
nodeId: string;
|
|
57
69
|
nodeName: string;
|
|
58
70
|
sandboxId: string;
|
|
71
|
+
providerSandboxId?: string;
|
|
59
72
|
relayWorkspaceId: string;
|
|
73
|
+
/** Closed server-owned Relaycast contract when Cloud returned one. Required for Agent37. */
|
|
74
|
+
relaycastTarget?: CloudFleetRelaycastTarget;
|
|
60
75
|
relayfileMounted: boolean;
|
|
61
76
|
relayfileMountPath?: string;
|
|
62
77
|
providerId?: CloudFleetSandboxProviderId;
|
|
@@ -70,12 +85,16 @@ export type CloudFleetSandboxReused = {
|
|
|
70
85
|
activeAgents: number | null;
|
|
71
86
|
maxAgents: number | null;
|
|
72
87
|
providerId?: CloudFleetSandboxProviderId;
|
|
88
|
+
/** Closed server-owned Relaycast contract when Cloud returned one. Required for Agent37. */
|
|
89
|
+
relaycastTarget?: CloudFleetRelaycastTarget;
|
|
73
90
|
};
|
|
74
91
|
export type CloudFleetSandboxProvisioningTimeout = {
|
|
75
92
|
outcome: 'provisioning_timeout';
|
|
76
93
|
cloudWorkspaceId: string;
|
|
77
94
|
sandboxId: string;
|
|
95
|
+
providerSandboxId?: string;
|
|
78
96
|
relayWorkspaceId: string;
|
|
97
|
+
relaycastTarget?: CloudFleetRelaycastTarget;
|
|
79
98
|
nodeName: string;
|
|
80
99
|
waitedMs: number;
|
|
81
100
|
providerId?: CloudFleetSandboxProviderId;
|
|
@@ -86,6 +105,15 @@ export type DeleteCloudFleetSandboxInput = {
|
|
|
86
105
|
sandboxId: string;
|
|
87
106
|
providerId?: CloudFleetSandboxProviderId;
|
|
88
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;
|
|
89
117
|
/** Resolve a Relay workspace in Cloud, provision/reuse a node, and wait for readiness. */
|
|
90
118
|
export declare function ensureCloudFleetSandbox(input: EnsureCloudFleetSandboxInput, options?: CloudFleetSandboxRequestOptions): Promise<EnsureCloudFleetSandboxResult>;
|
|
91
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":"
|
|
1
|
+
{"version":3,"file":"fleet-sandbox.d.ts","sourceRoot":"","sources":["../src/fleet-sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/fleet-sandbox.js
CHANGED
|
@@ -2,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,16 @@ export class CloudFleetSandboxProvisionError extends Error {
|
|
|
30
39
|
this.outcomeUnknown = identity.outcomeUnknown === true;
|
|
31
40
|
}
|
|
32
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
|
+
];
|
|
33
52
|
function isObject(value) {
|
|
34
53
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
35
54
|
}
|
|
@@ -37,6 +56,53 @@ function readString(payload, key) {
|
|
|
37
56
|
const value = payload[key];
|
|
38
57
|
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
39
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
|
+
}
|
|
40
106
|
function readNumber(payload, key) {
|
|
41
107
|
const value = payload[key];
|
|
42
108
|
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
@@ -47,6 +113,22 @@ function requiredNumber(payload, key, context) {
|
|
|
47
113
|
throw new Error(`${context} response is missing ${key}.`);
|
|
48
114
|
return value;
|
|
49
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
|
+
}
|
|
50
132
|
function boundedSignal(options, defaultTimeoutMs) {
|
|
51
133
|
const timeoutMs = options.timeoutMs ?? defaultTimeoutMs;
|
|
52
134
|
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
@@ -85,6 +167,39 @@ function requiredString(payload, key, context) {
|
|
|
85
167
|
throw new Error(`${context} response is missing ${key}.`);
|
|
86
168
|
return value;
|
|
87
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
|
+
}
|
|
88
203
|
async function resolveCloudWorkspaceId(workspaceId, auth, signal) {
|
|
89
204
|
const { response, auth: activeAuth } = await authorizedApiFetch(auth, `/api/v1/workspaces/${encodeURIComponent(workspaceId)}/resolve`, { method: 'GET', signal }, { interactive: false });
|
|
90
205
|
const payload = await readJson(response);
|
|
@@ -105,24 +220,34 @@ function readProviderId(payload, exactProviderRequested) {
|
|
|
105
220
|
const value = readString(payload, 'providerId');
|
|
106
221
|
if (value === undefined)
|
|
107
222
|
return undefined;
|
|
108
|
-
if (value
|
|
223
|
+
if (CLOUD_FLEET_SANDBOX_PROVIDER_IDS.includes(value)) {
|
|
109
224
|
return value;
|
|
225
|
+
}
|
|
110
226
|
if (exactProviderRequested) {
|
|
111
227
|
throw new Error('Cloud fleet sandbox response has an unknown providerId.');
|
|
112
228
|
}
|
|
113
229
|
return undefined;
|
|
114
230
|
}
|
|
115
|
-
function
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
+
}
|
|
120
236
|
}
|
|
121
|
-
function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
|
|
237
|
+
function normalizeEnsureResult(payload, cloudWorkspaceId, expectedSandboxId, expectedNodeName, requestedProviderId) {
|
|
122
238
|
if (!isObject(payload))
|
|
123
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
|
+
}
|
|
124
246
|
const outcome = readString(payload, 'outcome');
|
|
125
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
|
+
}
|
|
126
251
|
const providerId = readProviderId(payload, requestedProviderId !== undefined);
|
|
127
252
|
if (requestedProviderId !== undefined && providerId !== requestedProviderId) {
|
|
128
253
|
throw new Error(providerId === undefined
|
|
@@ -133,13 +258,23 @@ function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
|
|
|
133
258
|
if (typeof payload.relayfileMounted !== 'boolean') {
|
|
134
259
|
throw new Error('Cloud fleet sandbox response is missing relayfileMounted.');
|
|
135
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);
|
|
136
269
|
return {
|
|
137
270
|
outcome,
|
|
138
271
|
cloudWorkspaceId,
|
|
139
272
|
nodeId: requiredString(payload, 'nodeId', 'Cloud fleet sandbox'),
|
|
140
273
|
nodeName,
|
|
141
|
-
sandboxId
|
|
142
|
-
|
|
274
|
+
sandboxId,
|
|
275
|
+
...(providerSandboxId === undefined ? {} : { providerSandboxId }),
|
|
276
|
+
relayWorkspaceId,
|
|
277
|
+
...(relaycastTarget === undefined ? {} : { relaycastTarget }),
|
|
143
278
|
relayfileMounted: payload.relayfileMounted,
|
|
144
279
|
...(providerId === undefined ? {} : { providerId }),
|
|
145
280
|
...(readString(payload, 'relayfileMountPath')
|
|
@@ -148,6 +283,8 @@ function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
|
|
|
148
283
|
};
|
|
149
284
|
}
|
|
150
285
|
if (outcome === 'reused') {
|
|
286
|
+
const relaycastTarget = payload.relaycastTarget === undefined ? undefined : normalizeRelaycastTarget(payload.relaycastTarget);
|
|
287
|
+
assertProviderRelaycastTarget(providerId, relaycastTarget);
|
|
151
288
|
return {
|
|
152
289
|
outcome,
|
|
153
290
|
cloudWorkspaceId,
|
|
@@ -157,14 +294,24 @@ function normalizeEnsureResult(payload, cloudWorkspaceId, requestedProviderId) {
|
|
|
157
294
|
activeAgents: readNumber(payload, 'activeAgents') ?? null,
|
|
158
295
|
maxAgents: readNumber(payload, 'maxAgents') ?? null,
|
|
159
296
|
...(providerId === undefined ? {} : { providerId }),
|
|
297
|
+
...(relaycastTarget === undefined ? {} : { relaycastTarget }),
|
|
160
298
|
};
|
|
161
299
|
}
|
|
162
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
|
+
}
|
|
163
308
|
return {
|
|
164
309
|
outcome,
|
|
165
310
|
cloudWorkspaceId,
|
|
166
|
-
sandboxId
|
|
167
|
-
|
|
311
|
+
sandboxId,
|
|
312
|
+
...(providerSandboxId === undefined ? {} : { providerSandboxId }),
|
|
313
|
+
relayWorkspaceId,
|
|
314
|
+
...(relaycastTarget === undefined ? {} : { relaycastTarget }),
|
|
168
315
|
nodeName,
|
|
169
316
|
waitedMs: requiredNumber(payload, 'waitedMs', 'Cloud fleet sandbox'),
|
|
170
317
|
...(providerId === undefined ? {} : { providerId }),
|
|
@@ -180,6 +327,7 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
|
|
|
180
327
|
throw new Error('A workspace ID is required to provision a fleet sandbox.');
|
|
181
328
|
if (!requiredCapability)
|
|
182
329
|
throw new Error('A spawn capability is required to provision a fleet sandbox.');
|
|
330
|
+
const sandboxIdentity = validateSandboxIdentity(input);
|
|
183
331
|
if (input.relayfilePaths !== undefined && input.relayfilePaths.length === 0) {
|
|
184
332
|
throw new Error('At least one Relayfile subtree path is required when relayfilePaths is provided.');
|
|
185
333
|
}
|
|
@@ -198,12 +346,14 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
|
|
|
198
346
|
body: JSON.stringify({
|
|
199
347
|
workspaceId: resolved.cloudWorkspaceId,
|
|
200
348
|
requiredCapability,
|
|
201
|
-
...(
|
|
349
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
350
|
+
...(sandboxIdentity.name === undefined ? {} : { name: sandboxIdentity.name }),
|
|
202
351
|
...(input.maxAgents !== undefined ? { maxAgents: input.maxAgents } : {}),
|
|
203
352
|
...(input.mountRelayfile !== undefined ? { mountRelayfile: input.mountRelayfile } : {}),
|
|
204
353
|
...(input.relayfilePaths === undefined ? {} : { relayfilePaths: [...input.relayfilePaths] }),
|
|
205
354
|
...(input.forceProvision !== undefined ? { forceProvision: input.forceProvision } : {}),
|
|
206
355
|
...(input.providerId !== undefined ? { providerId: input.providerId } : {}),
|
|
356
|
+
...(input.workloadProfile !== undefined ? { workloadProfile: input.workloadProfile } : {}),
|
|
207
357
|
...(input.waitTimeoutMs !== undefined ? { waitTimeoutMs: input.waitTimeoutMs } : {}),
|
|
208
358
|
...(input.repos !== undefined && input.repos.length > 0 ? { repos: [...input.repos] } : {}),
|
|
209
359
|
}),
|
|
@@ -212,6 +362,7 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
|
|
|
212
362
|
catch (error) {
|
|
213
363
|
throw new CloudFleetSandboxProvisionError(redactCredentialValues(`Cloud fleet sandbox request ended without a complete response: ${error instanceof Error ? error.message : String(error)}`), {
|
|
214
364
|
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
365
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
215
366
|
...(input.name ? { nodeName: input.name } : {}),
|
|
216
367
|
...(input.providerId ? { providerId: input.providerId } : {}),
|
|
217
368
|
outcomeUnknown: true,
|
|
@@ -220,33 +371,55 @@ export async function ensureCloudFleetSandbox(input, options = {}) {
|
|
|
220
371
|
}
|
|
221
372
|
const payload = await readJson(response);
|
|
222
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
|
+
}
|
|
223
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
|
+
}
|
|
224
402
|
if (isObject(payload) && readString(payload, 'sandboxId')) {
|
|
225
|
-
const providerId = cleanupProviderId(payload, input.providerId);
|
|
226
403
|
throw new CloudFleetSandboxProvisionError(error.message, {
|
|
227
404
|
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
228
|
-
sandboxId:
|
|
229
|
-
|
|
230
|
-
...(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,
|
|
231
409
|
cause: error,
|
|
232
410
|
});
|
|
233
411
|
}
|
|
234
412
|
throw error;
|
|
235
413
|
}
|
|
236
414
|
try {
|
|
237
|
-
return normalizeEnsureResult(payload, resolved.cloudWorkspaceId, input.providerId);
|
|
415
|
+
return normalizeEnsureResult(payload, resolved.cloudWorkspaceId, sandboxIdentity.sandboxId, sandboxIdentity.name, input.providerId);
|
|
238
416
|
}
|
|
239
417
|
catch (error) {
|
|
240
|
-
const providerId = isObject(payload) ? cleanupProviderId(payload, input.providerId) : input.providerId;
|
|
241
418
|
throw new CloudFleetSandboxProvisionError(error instanceof Error ? error.message : 'Cloud fleet sandbox response was invalid.', {
|
|
242
419
|
cloudWorkspaceId: resolved.cloudWorkspaceId,
|
|
243
|
-
...(
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
...(isObject(payload) && (readString(payload, 'nodeName') ?? input.name)
|
|
247
|
-
? { nodeName: readString(payload, 'nodeName') ?? input.name }
|
|
248
|
-
: {}),
|
|
249
|
-
...(providerId === undefined ? {} : { providerId }),
|
|
420
|
+
...(sandboxIdentity.sandboxId === undefined ? {} : { sandboxId: sandboxIdentity.sandboxId }),
|
|
421
|
+
...(sandboxIdentity.name === undefined ? {} : { nodeName: sandboxIdentity.name }),
|
|
422
|
+
...(input.providerId === undefined ? {} : { providerId: input.providerId }),
|
|
250
423
|
outcomeUnknown: true,
|
|
251
424
|
cause: error,
|
|
252
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":"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"}
|
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, type
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,oCAAoC,EACzC,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,
|
|
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":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,GAGzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,WAAW,GAGZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAIlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"project-workspace-key.d.ts","sourceRoot":"","sources":["../src/project-workspace-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 {
|
|
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 {
|
|
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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"}
|
package/dist/workspace-key.d.ts
CHANGED
|
@@ -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"}
|
package/dist/workspace-key.js
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
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"
|