agent-relay 6.0.16 → 6.0.18
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/index.cjs +111 -32
- package/dist/packages/cloud/src/api-client.d.ts +33 -0
- package/dist/packages/cloud/src/api-client.d.ts.map +1 -0
- package/dist/packages/cloud/src/api-client.js +123 -0
- package/dist/packages/cloud/src/api-client.js.map +1 -0
- package/dist/packages/cloud/src/auth.d.ts +13 -0
- package/dist/packages/cloud/src/auth.d.ts.map +1 -0
- package/dist/packages/cloud/src/auth.js +299 -0
- package/dist/packages/cloud/src/auth.js.map +1 -0
- package/dist/packages/cloud/src/connect.d.ts +45 -0
- package/dist/packages/cloud/src/connect.d.ts.map +1 -0
- package/dist/packages/cloud/src/connect.js +166 -0
- package/dist/packages/cloud/src/connect.js.map +1 -0
- package/dist/packages/cloud/src/index.d.ts +10 -0
- package/dist/packages/cloud/src/index.d.ts.map +1 -0
- package/dist/packages/cloud/src/index.js +10 -0
- package/dist/packages/cloud/src/index.js.map +1 -0
- package/dist/packages/cloud/src/lib/ssh-interactive.d.ts +70 -0
- package/dist/packages/cloud/src/lib/ssh-interactive.d.ts.map +1 -0
- package/dist/packages/cloud/src/lib/ssh-interactive.js +440 -0
- package/dist/packages/cloud/src/lib/ssh-interactive.js.map +1 -0
- package/dist/packages/cloud/src/lib/ssh-runtime.d.ts +35 -0
- package/dist/packages/cloud/src/lib/ssh-runtime.d.ts.map +1 -0
- package/dist/packages/cloud/src/lib/ssh-runtime.js +52 -0
- package/dist/packages/cloud/src/lib/ssh-runtime.js.map +1 -0
- package/dist/packages/cloud/src/proactive-runtime.d.ts +24 -0
- package/dist/packages/cloud/src/proactive-runtime.d.ts.map +1 -0
- package/dist/packages/cloud/src/proactive-runtime.js +315 -0
- package/dist/packages/cloud/src/proactive-runtime.js.map +1 -0
- package/dist/packages/cloud/src/types.d.ts +200 -0
- package/dist/packages/cloud/src/types.d.ts.map +1 -0
- package/dist/packages/cloud/src/types.js +12 -0
- package/dist/packages/cloud/src/types.js.map +1 -0
- package/dist/packages/cloud/src/workflows.d.ts +65 -0
- package/dist/packages/cloud/src/workflows.d.ts.map +1 -0
- package/dist/packages/cloud/src/workflows.js +892 -0
- package/dist/packages/cloud/src/workflows.js.map +1 -0
- package/dist/packages/cloud/src/workspaces.d.ts +11 -0
- package/dist/packages/cloud/src/workspaces.d.ts.map +1 -0
- package/dist/packages/cloud/src/workspaces.js +146 -0
- package/dist/packages/cloud/src/workspaces.js.map +1 -0
- package/dist/src/cli/bootstrap.d.ts +3 -1
- package/dist/src/cli/bootstrap.d.ts.map +1 -1
- package/dist/src/cli/bootstrap.js +17 -3
- package/dist/src/cli/bootstrap.js.map +1 -1
- package/dist/src/cli/commands/cloud.js +1 -1
- package/dist/src/cli/commands/cloud.js.map +1 -1
- package/dist/src/cli/commands/dlq.d.ts +20 -0
- package/dist/src/cli/commands/dlq.d.ts.map +1 -0
- package/dist/src/cli/commands/dlq.js +456 -0
- package/dist/src/cli/commands/dlq.js.map +1 -0
- package/dist/src/cli/commands/proactive-bootstrap.d.ts +10 -0
- package/dist/src/cli/commands/proactive-bootstrap.d.ts.map +1 -0
- package/dist/src/cli/commands/proactive-bootstrap.js +133 -0
- package/dist/src/cli/commands/proactive-bootstrap.js.map +1 -0
- package/dist/src/cli/commands/relay-runtime.d.ts +58 -0
- package/dist/src/cli/commands/relay-runtime.d.ts.map +1 -0
- package/dist/src/cli/commands/relay-runtime.js +484 -0
- package/dist/src/cli/commands/relay-runtime.js.map +1 -0
- package/dist/src/cli/commands/setup.d.ts.map +1 -1
- package/dist/src/cli/commands/setup.js +11 -9
- package/dist/src/cli/commands/setup.js.map +1 -1
- package/package.json +11 -10
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { authorizedApiFetch, ensureAuthenticated } from './auth.js';
|
|
2
|
+
import { defaultApiUrl, } from './types.js';
|
|
3
|
+
function isObject(value) {
|
|
4
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function readString(payload, key) {
|
|
7
|
+
const value = payload[key];
|
|
8
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
9
|
+
}
|
|
10
|
+
async function readJson(response) {
|
|
11
|
+
try {
|
|
12
|
+
return await response.json();
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function buildEndpointError(action, endpoint, response, payload) {
|
|
19
|
+
const detail = isObject(payload)
|
|
20
|
+
? (readString(payload, 'error') ??
|
|
21
|
+
readString(payload, 'message') ??
|
|
22
|
+
readString(payload, 'detail') ??
|
|
23
|
+
response.statusText)
|
|
24
|
+
: response.statusText;
|
|
25
|
+
return new Error(`${action} failed at ${endpoint}: ${response.status} ${detail}`.trim());
|
|
26
|
+
}
|
|
27
|
+
function isUnsupported(response) {
|
|
28
|
+
return response.status === 404 || response.status === 405 || response.status === 501;
|
|
29
|
+
}
|
|
30
|
+
async function tryRequest(method, endpoint, options, body) {
|
|
31
|
+
const apiUrl = options.apiUrl || defaultApiUrl();
|
|
32
|
+
const auth = await ensureAuthenticated(apiUrl);
|
|
33
|
+
const { response } = await authorizedApiFetch(auth, endpoint, {
|
|
34
|
+
method,
|
|
35
|
+
...(body ? { body: JSON.stringify(body) } : {}),
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
response,
|
|
39
|
+
payload: await readJson(response),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function normalizeDeploymentResponse(payload) {
|
|
43
|
+
if (!isObject(payload)) {
|
|
44
|
+
throw new Error('Deployment response was not valid JSON.');
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
...payload,
|
|
48
|
+
...(readString(payload, 'deploymentId') ? { deploymentId: readString(payload, 'deploymentId') } : {}),
|
|
49
|
+
...(readString(payload, 'agentId') ? { agentId: readString(payload, 'agentId') } : {}),
|
|
50
|
+
...(readString(payload, 'workspaceId') ? { workspaceId: readString(payload, 'workspaceId') } : {}),
|
|
51
|
+
...(readString(payload, 'status') ? { status: readString(payload, 'status') } : {}),
|
|
52
|
+
...(readString(payload, 'dashboardUrl') ? { dashboardUrl: readString(payload, 'dashboardUrl') } : {}),
|
|
53
|
+
...(readString(payload, 'logsUrl') ? { logsUrl: readString(payload, 'logsUrl') } : {}),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function normalizeAgentRecord(payload) {
|
|
57
|
+
if (!isObject(payload)) {
|
|
58
|
+
throw new Error('Agent record was not valid JSON.');
|
|
59
|
+
}
|
|
60
|
+
const id = readString(payload, 'id') ??
|
|
61
|
+
readString(payload, 'agentId') ??
|
|
62
|
+
readString(payload, 'name') ??
|
|
63
|
+
readString(payload, 'displayName');
|
|
64
|
+
if (!id) {
|
|
65
|
+
throw new Error('Agent record is missing id.');
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
...payload,
|
|
69
|
+
id,
|
|
70
|
+
...(readString(payload, 'name') ? { name: readString(payload, 'name') } : {}),
|
|
71
|
+
...(readString(payload, 'displayName') ? { displayName: readString(payload, 'displayName') } : {}),
|
|
72
|
+
...(readString(payload, 'harness') ? { harness: readString(payload, 'harness') } : {}),
|
|
73
|
+
...(readString(payload, 'defaultModel') ? { defaultModel: readString(payload, 'defaultModel') } : {}),
|
|
74
|
+
...(readString(payload, 'status') ? { status: readString(payload, 'status') } : {}),
|
|
75
|
+
...(typeof payload.credentialStoredAt === 'string' || payload.credentialStoredAt === null
|
|
76
|
+
? { credentialStoredAt: payload.credentialStoredAt }
|
|
77
|
+
: {}),
|
|
78
|
+
...(typeof payload.lastAuthenticatedAt === 'string' || payload.lastAuthenticatedAt === null
|
|
79
|
+
? { lastAuthenticatedAt: payload.lastAuthenticatedAt }
|
|
80
|
+
: {}),
|
|
81
|
+
...(typeof payload.lastUsedAt === 'string' || payload.lastUsedAt === null
|
|
82
|
+
? { lastUsedAt: payload.lastUsedAt }
|
|
83
|
+
: {}),
|
|
84
|
+
...(typeof payload.lastError === 'string' || payload.lastError === null
|
|
85
|
+
? { lastError: payload.lastError }
|
|
86
|
+
: {}),
|
|
87
|
+
...(readString(payload, 'createdAt') ? { createdAt: readString(payload, 'createdAt') } : {}),
|
|
88
|
+
...(readString(payload, 'updatedAt') ? { updatedAt: readString(payload, 'updatedAt') } : {}),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function normalizeAgentList(payload) {
|
|
92
|
+
if (Array.isArray(payload)) {
|
|
93
|
+
return payload.map((entry) => normalizeAgentRecord(entry));
|
|
94
|
+
}
|
|
95
|
+
if (isObject(payload) && Array.isArray(payload.agents)) {
|
|
96
|
+
return payload.agents.map((entry) => normalizeAgentRecord(entry));
|
|
97
|
+
}
|
|
98
|
+
throw new Error('Agent list response did not include an agents array.');
|
|
99
|
+
}
|
|
100
|
+
function normalizeSecretRecord(payload, fallbackName) {
|
|
101
|
+
if (!isObject(payload)) {
|
|
102
|
+
throw new Error('Secret response was not valid JSON.');
|
|
103
|
+
}
|
|
104
|
+
const name = readString(payload, 'name') ??
|
|
105
|
+
readString(payload, 'secretName') ??
|
|
106
|
+
readString(payload, 'key') ??
|
|
107
|
+
fallbackName;
|
|
108
|
+
if (!name) {
|
|
109
|
+
throw new Error('Secret response is missing name.');
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
...payload,
|
|
113
|
+
name,
|
|
114
|
+
...(readString(payload, 'value') ? { value: readString(payload, 'value') } : {}),
|
|
115
|
+
...(readString(payload, 'maskedValue') ? { maskedValue: readString(payload, 'maskedValue') } : {}),
|
|
116
|
+
...(readString(payload, 'createdAt') ? { createdAt: readString(payload, 'createdAt') } : {}),
|
|
117
|
+
...(readString(payload, 'updatedAt') ? { updatedAt: readString(payload, 'updatedAt') } : {}),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export async function deployProactiveAgent(input, options = {}) {
|
|
121
|
+
const entrypoint = input.entrypoint.trim();
|
|
122
|
+
if (!entrypoint) {
|
|
123
|
+
throw new Error('Entrypoint is required.');
|
|
124
|
+
}
|
|
125
|
+
if (!input.source.trim()) {
|
|
126
|
+
throw new Error('Entrypoint source is required.');
|
|
127
|
+
}
|
|
128
|
+
const endpoints = [
|
|
129
|
+
'/api/v1/agents/deploy',
|
|
130
|
+
'/api/v1/proactive/agents/deploy',
|
|
131
|
+
'/api/v1/proactive-runtime/deploy',
|
|
132
|
+
];
|
|
133
|
+
const body = {
|
|
134
|
+
entrypoint,
|
|
135
|
+
source: input.source,
|
|
136
|
+
...(options.name?.trim() ? { name: options.name.trim() } : {}),
|
|
137
|
+
...(options.watch ? { watch: true } : {}),
|
|
138
|
+
};
|
|
139
|
+
let lastUnsupported = null;
|
|
140
|
+
for (const endpoint of endpoints) {
|
|
141
|
+
const { response, payload } = await tryRequest('POST', endpoint, options, body);
|
|
142
|
+
if (isUnsupported(response)) {
|
|
143
|
+
lastUnsupported = buildEndpointError('Deploy', endpoint, response, payload);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
if (!response.ok) {
|
|
147
|
+
throw buildEndpointError('Deploy', endpoint, response, payload);
|
|
148
|
+
}
|
|
149
|
+
return normalizeDeploymentResponse(payload);
|
|
150
|
+
}
|
|
151
|
+
throw lastUnsupported ?? new Error('Deploy is not supported by the configured cloud API.');
|
|
152
|
+
}
|
|
153
|
+
export async function listProactiveAgents(options = {}) {
|
|
154
|
+
const endpoints = ['/api/v1/cloud-agents', '/api/v1/agents'];
|
|
155
|
+
let lastUnsupported = null;
|
|
156
|
+
for (const endpoint of endpoints) {
|
|
157
|
+
const { response, payload } = await tryRequest('GET', endpoint, options);
|
|
158
|
+
if (isUnsupported(response)) {
|
|
159
|
+
lastUnsupported = buildEndpointError('Agent list', endpoint, response, payload);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
if (!response.ok) {
|
|
163
|
+
throw buildEndpointError('Agent list', endpoint, response, payload);
|
|
164
|
+
}
|
|
165
|
+
return normalizeAgentList(payload);
|
|
166
|
+
}
|
|
167
|
+
throw lastUnsupported ?? new Error('Agent listing is not supported by the configured cloud API.');
|
|
168
|
+
}
|
|
169
|
+
export async function inspectProactiveAgent(agentId, options = {}) {
|
|
170
|
+
const trimmed = agentId.trim();
|
|
171
|
+
if (!trimmed) {
|
|
172
|
+
throw new Error('Agent id is required.');
|
|
173
|
+
}
|
|
174
|
+
const encoded = encodeURIComponent(trimmed);
|
|
175
|
+
const endpoints = [`/api/v1/cloud-agents/${encoded}`, `/api/v1/agents/${encoded}`];
|
|
176
|
+
let lastUnsupported = null;
|
|
177
|
+
for (const endpoint of endpoints) {
|
|
178
|
+
const { response, payload } = await tryRequest('GET', endpoint, options);
|
|
179
|
+
if (response.status === 404) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
if (isUnsupported(response)) {
|
|
183
|
+
lastUnsupported = buildEndpointError('Agent inspect', endpoint, response, payload);
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
if (!response.ok) {
|
|
187
|
+
throw buildEndpointError('Agent inspect', endpoint, response, payload);
|
|
188
|
+
}
|
|
189
|
+
return normalizeAgentRecord(payload);
|
|
190
|
+
}
|
|
191
|
+
const agents = await listProactiveAgents(options);
|
|
192
|
+
const matched = agents.find((agent) => agent.id === trimmed || agent.name === trimmed || agent.displayName === trimmed);
|
|
193
|
+
if (matched) {
|
|
194
|
+
return matched;
|
|
195
|
+
}
|
|
196
|
+
if (lastUnsupported) {
|
|
197
|
+
throw lastUnsupported;
|
|
198
|
+
}
|
|
199
|
+
throw new Error(`Agent "${trimmed}" not found.`);
|
|
200
|
+
}
|
|
201
|
+
export async function undeployProactiveAgent(agentId, options = {}) {
|
|
202
|
+
const trimmed = agentId.trim();
|
|
203
|
+
if (!trimmed) {
|
|
204
|
+
throw new Error('Agent id is required.');
|
|
205
|
+
}
|
|
206
|
+
const encoded = encodeURIComponent(trimmed);
|
|
207
|
+
const endpoints = [`/api/v1/cloud-agents/${encoded}`, `/api/v1/agents/${encoded}`];
|
|
208
|
+
let lastUnsupported = null;
|
|
209
|
+
for (const endpoint of endpoints) {
|
|
210
|
+
const { response, payload } = await tryRequest('DELETE', endpoint, options);
|
|
211
|
+
if (isUnsupported(response)) {
|
|
212
|
+
lastUnsupported = buildEndpointError('Agent undeploy', endpoint, response, payload);
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
if (!response.ok) {
|
|
216
|
+
throw buildEndpointError('Agent undeploy', endpoint, response, payload);
|
|
217
|
+
}
|
|
218
|
+
if (payload === null) {
|
|
219
|
+
return { id: trimmed, status: 'deleted' };
|
|
220
|
+
}
|
|
221
|
+
return normalizeAgentRecord(isObject(payload) ? payload : { id: trimmed, status: 'deleted' });
|
|
222
|
+
}
|
|
223
|
+
throw lastUnsupported ?? new Error('Agent undeploy is not supported by the configured cloud API.');
|
|
224
|
+
}
|
|
225
|
+
export async function createWorkspaceSecret(name, value, options) {
|
|
226
|
+
const secretName = name.trim();
|
|
227
|
+
const workspace = options.workspace.trim();
|
|
228
|
+
if (!workspace) {
|
|
229
|
+
throw new Error('Workspace is required.');
|
|
230
|
+
}
|
|
231
|
+
if (!secretName) {
|
|
232
|
+
throw new Error('Secret name is required.');
|
|
233
|
+
}
|
|
234
|
+
const encodedWorkspace = encodeURIComponent(workspace);
|
|
235
|
+
const endpoints = [
|
|
236
|
+
`/api/v1/workspaces/${encodedWorkspace}/secrets`,
|
|
237
|
+
`/api/v1/workspaces/${encodedWorkspace}/secret`,
|
|
238
|
+
`/api/v1/relayauth/workspaces/${encodedWorkspace}/secrets`,
|
|
239
|
+
];
|
|
240
|
+
const body = { name: secretName, value };
|
|
241
|
+
let lastUnsupported = null;
|
|
242
|
+
for (const endpoint of endpoints) {
|
|
243
|
+
const { response, payload } = await tryRequest('POST', endpoint, options, body);
|
|
244
|
+
if (isUnsupported(response)) {
|
|
245
|
+
lastUnsupported = buildEndpointError('Secret create', endpoint, response, payload);
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (!response.ok) {
|
|
249
|
+
throw buildEndpointError('Secret create', endpoint, response, payload);
|
|
250
|
+
}
|
|
251
|
+
return normalizeSecretRecord(payload, secretName);
|
|
252
|
+
}
|
|
253
|
+
throw lastUnsupported ?? new Error('Secret creation is not supported by the configured cloud API.');
|
|
254
|
+
}
|
|
255
|
+
export async function getWorkspaceSecret(name, options) {
|
|
256
|
+
const secretName = name.trim();
|
|
257
|
+
const workspace = options.workspace.trim();
|
|
258
|
+
if (!workspace) {
|
|
259
|
+
throw new Error('Workspace is required.');
|
|
260
|
+
}
|
|
261
|
+
if (!secretName) {
|
|
262
|
+
throw new Error('Secret name is required.');
|
|
263
|
+
}
|
|
264
|
+
const encodedWorkspace = encodeURIComponent(workspace);
|
|
265
|
+
const encodedName = encodeURIComponent(secretName);
|
|
266
|
+
const endpoints = [
|
|
267
|
+
`/api/v1/workspaces/${encodedWorkspace}/secrets/${encodedName}`,
|
|
268
|
+
`/api/v1/workspaces/${encodedWorkspace}/secret/${encodedName}`,
|
|
269
|
+
`/api/v1/relayauth/workspaces/${encodedWorkspace}/secrets/${encodedName}`,
|
|
270
|
+
];
|
|
271
|
+
let lastUnsupported = null;
|
|
272
|
+
for (const endpoint of endpoints) {
|
|
273
|
+
const { response, payload } = await tryRequest('GET', endpoint, options);
|
|
274
|
+
if (isUnsupported(response)) {
|
|
275
|
+
lastUnsupported = buildEndpointError('Secret get', endpoint, response, payload);
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
if (!response.ok) {
|
|
279
|
+
throw buildEndpointError('Secret get', endpoint, response, payload);
|
|
280
|
+
}
|
|
281
|
+
return normalizeSecretRecord(payload, secretName);
|
|
282
|
+
}
|
|
283
|
+
throw lastUnsupported ?? new Error('Secret retrieval is not supported by the configured cloud API.');
|
|
284
|
+
}
|
|
285
|
+
export async function deleteWorkspaceSecret(name, options) {
|
|
286
|
+
const secretName = name.trim();
|
|
287
|
+
const workspace = options.workspace.trim();
|
|
288
|
+
if (!workspace) {
|
|
289
|
+
throw new Error('Workspace is required.');
|
|
290
|
+
}
|
|
291
|
+
if (!secretName) {
|
|
292
|
+
throw new Error('Secret name is required.');
|
|
293
|
+
}
|
|
294
|
+
const encodedWorkspace = encodeURIComponent(workspace);
|
|
295
|
+
const encodedName = encodeURIComponent(secretName);
|
|
296
|
+
const endpoints = [
|
|
297
|
+
`/api/v1/workspaces/${encodedWorkspace}/secrets/${encodedName}`,
|
|
298
|
+
`/api/v1/workspaces/${encodedWorkspace}/secret/${encodedName}`,
|
|
299
|
+
`/api/v1/relayauth/workspaces/${encodedWorkspace}/secrets/${encodedName}`,
|
|
300
|
+
];
|
|
301
|
+
let lastUnsupported = null;
|
|
302
|
+
for (const endpoint of endpoints) {
|
|
303
|
+
const { response, payload } = await tryRequest('DELETE', endpoint, options);
|
|
304
|
+
if (isUnsupported(response)) {
|
|
305
|
+
lastUnsupported = buildEndpointError('Secret delete', endpoint, response, payload);
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
if (!response.ok) {
|
|
309
|
+
throw buildEndpointError('Secret delete', endpoint, response, payload);
|
|
310
|
+
}
|
|
311
|
+
return normalizeSecretRecord(isObject(payload) ? payload : { name: secretName, status: 'deleted' }, secretName);
|
|
312
|
+
}
|
|
313
|
+
throw lastUnsupported ?? new Error('Secret deletion is not supported by the configured cloud API.');
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=proactive-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proactive-runtime.js","sourceRoot":"","sources":["../../../../packages/cloud/src/proactive-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
export type StoredAuth = {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
refreshToken: string;
|
|
4
|
+
accessTokenExpiresAt: string;
|
|
5
|
+
apiUrl: string;
|
|
6
|
+
};
|
|
7
|
+
export type WhoAmIResponse = {
|
|
8
|
+
authenticated: boolean;
|
|
9
|
+
source: 'session' | 'token';
|
|
10
|
+
subjectType: string | null;
|
|
11
|
+
scopes: string[];
|
|
12
|
+
user: {
|
|
13
|
+
id: string;
|
|
14
|
+
email: string | null;
|
|
15
|
+
name: string | null;
|
|
16
|
+
avatarUrl: string | null;
|
|
17
|
+
};
|
|
18
|
+
currentOrganization: {
|
|
19
|
+
id: string;
|
|
20
|
+
slug: string;
|
|
21
|
+
name: string;
|
|
22
|
+
role: string;
|
|
23
|
+
status: string;
|
|
24
|
+
};
|
|
25
|
+
currentWorkspace: {
|
|
26
|
+
id: string;
|
|
27
|
+
organization_id: string;
|
|
28
|
+
slug: string;
|
|
29
|
+
name: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export type AuthSessionResponse = {
|
|
33
|
+
sessionId: string;
|
|
34
|
+
ssh: {
|
|
35
|
+
host: string;
|
|
36
|
+
port: number;
|
|
37
|
+
user: string;
|
|
38
|
+
password: string;
|
|
39
|
+
};
|
|
40
|
+
remoteCommand: string;
|
|
41
|
+
provider: string;
|
|
42
|
+
expiresAt: string;
|
|
43
|
+
};
|
|
44
|
+
export type WorkspaceCreateResponse = {
|
|
45
|
+
workspaceId: string;
|
|
46
|
+
name?: string;
|
|
47
|
+
relayfileUrl?: string;
|
|
48
|
+
relaycronUrl?: string;
|
|
49
|
+
relaycastUrl?: string;
|
|
50
|
+
relayauthUrl?: string;
|
|
51
|
+
joinCommand?: string;
|
|
52
|
+
createdAt?: string;
|
|
53
|
+
};
|
|
54
|
+
export type WorkspaceTokenRecord = {
|
|
55
|
+
workspaceId: string;
|
|
56
|
+
kind: string;
|
|
57
|
+
prefix?: string;
|
|
58
|
+
id?: string;
|
|
59
|
+
name?: string;
|
|
60
|
+
createdAt?: string;
|
|
61
|
+
updatedAt?: string;
|
|
62
|
+
};
|
|
63
|
+
export type WorkspaceTokenIssueResponse = {
|
|
64
|
+
key: string;
|
|
65
|
+
workspaceToken?: WorkspaceTokenRecord;
|
|
66
|
+
};
|
|
67
|
+
export type ProactiveDeploymentResponse = {
|
|
68
|
+
deploymentId?: string;
|
|
69
|
+
agentId?: string;
|
|
70
|
+
workspaceId?: string;
|
|
71
|
+
status?: string;
|
|
72
|
+
dashboardUrl?: string;
|
|
73
|
+
logsUrl?: string;
|
|
74
|
+
[key: string]: unknown;
|
|
75
|
+
};
|
|
76
|
+
export type ProactiveAgentRecord = {
|
|
77
|
+
id: string;
|
|
78
|
+
name?: string;
|
|
79
|
+
displayName?: string;
|
|
80
|
+
harness?: string;
|
|
81
|
+
defaultModel?: string;
|
|
82
|
+
status?: string;
|
|
83
|
+
credentialStoredAt?: string | null;
|
|
84
|
+
lastAuthenticatedAt?: string | null;
|
|
85
|
+
lastUsedAt?: string | null;
|
|
86
|
+
lastError?: string | null;
|
|
87
|
+
createdAt?: string;
|
|
88
|
+
updatedAt?: string;
|
|
89
|
+
[key: string]: unknown;
|
|
90
|
+
};
|
|
91
|
+
export type WorkspaceSecretRecord = {
|
|
92
|
+
name: string;
|
|
93
|
+
value?: string;
|
|
94
|
+
maskedValue?: string;
|
|
95
|
+
createdAt?: string;
|
|
96
|
+
updatedAt?: string;
|
|
97
|
+
[key: string]: unknown;
|
|
98
|
+
};
|
|
99
|
+
export type WorkflowFileType = 'yaml' | 'ts' | 'py';
|
|
100
|
+
export type PathSubmission = {
|
|
101
|
+
name: string;
|
|
102
|
+
s3CodeKey: string;
|
|
103
|
+
repoOwner?: string;
|
|
104
|
+
repoName?: string;
|
|
105
|
+
pushBranch?: string;
|
|
106
|
+
pushBase?: string;
|
|
107
|
+
pushPrBody?: string;
|
|
108
|
+
};
|
|
109
|
+
export type RunWorkflowOptions = {
|
|
110
|
+
apiUrl?: string;
|
|
111
|
+
fileType?: WorkflowFileType;
|
|
112
|
+
syncCode?: boolean;
|
|
113
|
+
resume?: string;
|
|
114
|
+
startFrom?: string;
|
|
115
|
+
previousRunId?: string;
|
|
116
|
+
};
|
|
117
|
+
export type RunWorkflowResponse = {
|
|
118
|
+
runId: string;
|
|
119
|
+
sandboxId?: string;
|
|
120
|
+
status: string;
|
|
121
|
+
patches?: Record<string, {
|
|
122
|
+
s3Key: string;
|
|
123
|
+
hasChanges?: boolean;
|
|
124
|
+
pushedTo?: {
|
|
125
|
+
branch: string;
|
|
126
|
+
prUrl: string;
|
|
127
|
+
sha: string;
|
|
128
|
+
base: {
|
|
129
|
+
branch: string;
|
|
130
|
+
sha: string;
|
|
131
|
+
};
|
|
132
|
+
strategy?: 'contents_api' | 'git_db';
|
|
133
|
+
};
|
|
134
|
+
pushError?: {
|
|
135
|
+
code: string;
|
|
136
|
+
message: string;
|
|
137
|
+
observedBaseSha?: string;
|
|
138
|
+
base?: {
|
|
139
|
+
branch: string;
|
|
140
|
+
sha: string;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
}>;
|
|
144
|
+
[key: string]: unknown;
|
|
145
|
+
};
|
|
146
|
+
export type WorkflowSchedule = {
|
|
147
|
+
id: string;
|
|
148
|
+
relaycronScheduleId: string;
|
|
149
|
+
userId: string;
|
|
150
|
+
workspaceId: string;
|
|
151
|
+
organizationId: string;
|
|
152
|
+
name: string;
|
|
153
|
+
description: string | null;
|
|
154
|
+
scheduleType: 'once' | 'cron';
|
|
155
|
+
cronExpression: string | null;
|
|
156
|
+
scheduledAt: string | null;
|
|
157
|
+
timezone: string;
|
|
158
|
+
status: string;
|
|
159
|
+
lastTriggeredRunId: string | null;
|
|
160
|
+
lastTriggeredAt: string | null;
|
|
161
|
+
createdAt: string;
|
|
162
|
+
updatedAt: string;
|
|
163
|
+
};
|
|
164
|
+
export type ScheduleWorkflowOptions = {
|
|
165
|
+
apiUrl?: string;
|
|
166
|
+
fileType?: WorkflowFileType;
|
|
167
|
+
name?: string;
|
|
168
|
+
description?: string;
|
|
169
|
+
cron?: string;
|
|
170
|
+
at?: string;
|
|
171
|
+
timezone?: string;
|
|
172
|
+
};
|
|
173
|
+
export type WorkflowLogsResponse = {
|
|
174
|
+
content: string;
|
|
175
|
+
offset: number;
|
|
176
|
+
totalSize: number;
|
|
177
|
+
done: boolean;
|
|
178
|
+
[key: string]: unknown;
|
|
179
|
+
};
|
|
180
|
+
export type SyncPatchResponse = {
|
|
181
|
+
patch?: string;
|
|
182
|
+
hasChanges?: boolean;
|
|
183
|
+
patches?: Record<string, {
|
|
184
|
+
patch: string;
|
|
185
|
+
hasChanges: boolean;
|
|
186
|
+
}>;
|
|
187
|
+
[key: string]: unknown;
|
|
188
|
+
};
|
|
189
|
+
export type GetPatchesResponse = {
|
|
190
|
+
patches: Record<string, {
|
|
191
|
+
patch: string;
|
|
192
|
+
hasChanges: boolean;
|
|
193
|
+
}>;
|
|
194
|
+
};
|
|
195
|
+
export declare const SUPPORTED_PROVIDERS: readonly ["anthropic", "openai", "google", "cursor", "opencode", "droid"];
|
|
196
|
+
export declare const REFRESH_WINDOW_MS = 60000;
|
|
197
|
+
export declare const AUTH_FILE_PATH: string;
|
|
198
|
+
export declare function defaultApiUrl(): string;
|
|
199
|
+
export declare function isSupportedProvider(provider: string): boolean;
|
|
200
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/cloud/src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export const SUPPORTED_PROVIDERS = ['anthropic', 'openai', 'google', 'cursor', 'opencode', 'droid'];
|
|
4
|
+
export const REFRESH_WINDOW_MS = 60_000;
|
|
5
|
+
export const AUTH_FILE_PATH = path.join(os.homedir(), '.agent-relay', 'cloud-auth.json');
|
|
6
|
+
export function defaultApiUrl() {
|
|
7
|
+
return process.env.CLOUD_API_URL?.trim() || 'https://agentrelay.com/cloud';
|
|
8
|
+
}
|
|
9
|
+
export function isSupportedProvider(provider) {
|
|
10
|
+
return SUPPORTED_PROVIDERS.includes(provider);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/cloud/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA6M7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAE7G,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEzF,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,8BAA8B,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,QAAgD,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type WorkflowFileType, type RunWorkflowResponse, type ScheduleWorkflowOptions, type WorkflowLogsResponse, type WorkflowSchedule, type SyncPatchResponse } from './types.js';
|
|
2
|
+
type ResolvedWorkflowInput = {
|
|
3
|
+
workflow: string;
|
|
4
|
+
fileType: WorkflowFileType;
|
|
5
|
+
sourceFileType?: WorkflowFileType;
|
|
6
|
+
};
|
|
7
|
+
type WorkflowPathDefinition = {
|
|
8
|
+
name: string;
|
|
9
|
+
path: string;
|
|
10
|
+
pushBranch?: string;
|
|
11
|
+
pushBase?: string;
|
|
12
|
+
pushPrBody?: string;
|
|
13
|
+
};
|
|
14
|
+
type RunWorkflowOptions = {
|
|
15
|
+
apiUrl?: string;
|
|
16
|
+
fileType?: WorkflowFileType;
|
|
17
|
+
syncCode?: boolean;
|
|
18
|
+
resume?: string;
|
|
19
|
+
startFrom?: string;
|
|
20
|
+
previousRunId?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function parseWorkflowPaths(content: string, fileType: WorkflowFileType): WorkflowPathDefinition[];
|
|
23
|
+
export declare function inferWorkflowFileType(filePath: string): WorkflowFileType | null;
|
|
24
|
+
export declare function shouldSyncCodeByDefault(_workflowArg: string, _explicitFileType?: WorkflowFileType): boolean;
|
|
25
|
+
export declare function parseGitHubRemote(remote: string): {
|
|
26
|
+
repoOwner: string;
|
|
27
|
+
repoName: string;
|
|
28
|
+
} | null;
|
|
29
|
+
export declare function resolveWorkflowInput(workflowArg: string, explicitFileType?: WorkflowFileType): Promise<ResolvedWorkflowInput>;
|
|
30
|
+
export declare function runWorkflow(workflowArg: string, options?: RunWorkflowOptions): Promise<RunWorkflowResponse>;
|
|
31
|
+
export declare function scheduleWorkflow(workflowArg: string, options?: ScheduleWorkflowOptions): Promise<WorkflowSchedule>;
|
|
32
|
+
export declare function listWorkflowSchedules(options?: {
|
|
33
|
+
apiUrl?: string;
|
|
34
|
+
}): Promise<WorkflowSchedule[]>;
|
|
35
|
+
export declare function getRunStatus(runId: string, options?: {
|
|
36
|
+
apiUrl?: string;
|
|
37
|
+
}): Promise<Record<string, unknown>>;
|
|
38
|
+
export declare function cancelWorkflow(runId: string, options?: {
|
|
39
|
+
apiUrl?: string;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
runId: string;
|
|
42
|
+
status: string;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function getRunLogs(runId: string, options?: {
|
|
45
|
+
apiUrl?: string;
|
|
46
|
+
offset?: number;
|
|
47
|
+
sandboxId?: string;
|
|
48
|
+
}): Promise<WorkflowLogsResponse>;
|
|
49
|
+
export declare function syncWorkflowPatch(runId: string, options?: {
|
|
50
|
+
apiUrl?: string;
|
|
51
|
+
}): Promise<SyncPatchResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Turn the user-typed workflow path into a path **relative to the tarball
|
|
54
|
+
* root** (process.cwd()) that the cloud launcher can append to
|
|
55
|
+
* `/project/` to locate the file inside the synced code tree.
|
|
56
|
+
*
|
|
57
|
+
* Returns `null` when the result would escape the tarball (absolute
|
|
58
|
+
* outside cwd, or contains `..`). Callers drop the hint in that case —
|
|
59
|
+
* the server falls back to the legacy $HOME upload path, which still
|
|
60
|
+
* works (it just breaks sibling-relative imports, the pre-existing
|
|
61
|
+
* behaviour this field was added to fix).
|
|
62
|
+
*/
|
|
63
|
+
export declare function relativizeWorkflowPath(workflowArg: string): string | null;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../packages/cloud/src/workflows.ts"],"names":[],"mappings":"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"}
|