agent-relay 3.2.18 → 3.2.22
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/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/dist/index.cjs +233 -55
- package/dist/src/cli/commands/cloud.d.ts +1 -9
- package/dist/src/cli/commands/cloud.d.ts.map +1 -1
- package/dist/src/cli/commands/cloud.js +326 -323
- package/dist/src/cli/commands/cloud.js.map +1 -1
- package/dist/src/cli/commands/connect.d.ts.map +1 -1
- package/dist/src/cli/commands/connect.js +6 -10
- package/dist/src/cli/commands/connect.js.map +1 -1
- package/package.json +16 -10
- package/packages/acp-bridge/package.json +2 -2
- package/packages/brand/README.md +36 -0
- package/packages/brand/brand.css +226 -0
- package/packages/brand/package.json +20 -0
- package/packages/cloud/dist/api-client.d.ts +33 -0
- package/packages/cloud/dist/api-client.d.ts.map +1 -0
- package/packages/cloud/dist/api-client.js +123 -0
- package/packages/cloud/dist/api-client.js.map +1 -0
- package/packages/cloud/dist/auth.d.ts +13 -0
- package/packages/cloud/dist/auth.d.ts.map +1 -0
- package/packages/cloud/dist/auth.js +248 -0
- package/packages/cloud/dist/auth.js.map +1 -0
- package/packages/cloud/dist/index.d.ts +5 -0
- package/packages/cloud/dist/index.d.ts.map +1 -0
- package/packages/cloud/dist/index.js +5 -0
- package/packages/cloud/dist/index.js.map +1 -0
- package/packages/cloud/dist/types.d.ts +73 -0
- package/packages/cloud/dist/types.d.ts.map +1 -0
- package/packages/cloud/dist/types.js +19 -0
- package/packages/cloud/dist/types.js.map +1 -0
- package/packages/cloud/dist/workflows.d.ts +34 -0
- package/packages/cloud/dist/workflows.d.ts.map +1 -0
- package/packages/cloud/dist/workflows.js +389 -0
- package/packages/cloud/dist/workflows.js.map +1 -0
- package/packages/cloud/package.json +44 -0
- package/packages/cloud/src/api-client.ts +169 -0
- package/packages/cloud/src/auth.ts +314 -0
- package/packages/cloud/src/index.ts +41 -0
- package/packages/cloud/src/types.ts +97 -0
- package/packages/cloud/src/workflows.ts +539 -0
- package/packages/cloud/tsconfig.json +21 -0
- package/packages/config/package.json +1 -1
- package/packages/hooks/package.json +4 -4
- package/packages/memory/package.json +2 -2
- package/packages/openclaw/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/sdk/dist/workflows/__tests__/e2big-and-verify.test.d.ts +2 -0
- package/packages/sdk/dist/workflows/__tests__/e2big-and-verify.test.d.ts.map +1 -0
- package/packages/sdk/dist/workflows/__tests__/e2big-and-verify.test.js +62 -0
- package/packages/sdk/dist/workflows/__tests__/e2big-and-verify.test.js.map +1 -0
- package/packages/sdk/dist/workflows/cli.js +46 -2
- package/packages/sdk/dist/workflows/cli.js.map +1 -1
- package/packages/sdk/dist/workflows/file-db.d.ts +2 -0
- package/packages/sdk/dist/workflows/file-db.d.ts.map +1 -1
- package/packages/sdk/dist/workflows/file-db.js +20 -3
- package/packages/sdk/dist/workflows/file-db.js.map +1 -1
- package/packages/sdk/dist/workflows/runner.d.ts +10 -1
- package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
- package/packages/sdk/dist/workflows/runner.js +233 -50
- package/packages/sdk/dist/workflows/runner.js.map +1 -1
- package/packages/sdk/package.json +2 -2
- package/packages/sdk/src/__tests__/resume-fallback.test.ts +415 -0
- package/packages/sdk/src/__tests__/workflow-runner.test.ts +73 -2
- package/packages/sdk/src/workflows/__tests__/e2big-and-verify.test.ts +117 -0
- package/packages/sdk/src/workflows/cli.ts +53 -2
- package/packages/sdk/src/workflows/file-db.ts +22 -3
- package/packages/sdk/src/workflows/runner.ts +283 -49
- package/packages/sdk-py/pyproject.toml +1 -1
- package/packages/sdk-swift/Sources/AgentRelaySDK/RelayObserver.swift +2 -0
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/package.json +2 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type StoredAuth } from "./types.js";
|
|
2
|
+
export declare function readStoredAuth(): Promise<StoredAuth | null>;
|
|
3
|
+
export declare function writeStoredAuth(auth: StoredAuth): Promise<void>;
|
|
4
|
+
export declare function clearStoredAuth(): Promise<void>;
|
|
5
|
+
export declare function refreshStoredAuth(auth: StoredAuth): Promise<StoredAuth>;
|
|
6
|
+
export declare function ensureAuthenticated(apiUrl: string, options?: {
|
|
7
|
+
force?: boolean;
|
|
8
|
+
}): Promise<StoredAuth>;
|
|
9
|
+
export declare function authorizedApiFetch(auth: StoredAuth, requestPath: string, init: RequestInit): Promise<{
|
|
10
|
+
response: Response;
|
|
11
|
+
auth: StoredAuth;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAgBhF,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQjE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AA8KD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CA6B7E;AASD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB5G;AAkBD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAgBnD"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import http from "node:http";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { spawn } from "node:child_process";
|
|
6
|
+
import { buildApiUrl } from "./api-client.js";
|
|
7
|
+
import { AUTH_FILE_PATH, REFRESH_WINDOW_MS } from "./types.js";
|
|
8
|
+
function isValidStoredAuth(value) {
|
|
9
|
+
if (!value || typeof value !== "object") {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const auth = value;
|
|
13
|
+
return (typeof auth.accessToken === "string" &&
|
|
14
|
+
typeof auth.refreshToken === "string" &&
|
|
15
|
+
typeof auth.accessTokenExpiresAt === "string" &&
|
|
16
|
+
typeof auth.apiUrl === "string");
|
|
17
|
+
}
|
|
18
|
+
export async function readStoredAuth() {
|
|
19
|
+
try {
|
|
20
|
+
const file = await fs.readFile(AUTH_FILE_PATH, "utf8");
|
|
21
|
+
const parsed = JSON.parse(file);
|
|
22
|
+
return isValidStoredAuth(parsed) ? parsed : null;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export async function writeStoredAuth(auth) {
|
|
29
|
+
await fs.mkdir(path.dirname(AUTH_FILE_PATH), {
|
|
30
|
+
recursive: true,
|
|
31
|
+
mode: 0o700,
|
|
32
|
+
});
|
|
33
|
+
await fs.writeFile(AUTH_FILE_PATH, `${JSON.stringify(auth, null, 2)}\n`, {
|
|
34
|
+
encoding: "utf8",
|
|
35
|
+
mode: 0o600,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export async function clearStoredAuth() {
|
|
39
|
+
await fs.rm(AUTH_FILE_PATH, { force: true });
|
|
40
|
+
}
|
|
41
|
+
function shouldRefresh(accessTokenExpiresAt) {
|
|
42
|
+
const expiresAt = Date.parse(accessTokenExpiresAt);
|
|
43
|
+
if (Number.isNaN(expiresAt)) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return expiresAt - Date.now() <= REFRESH_WINDOW_MS;
|
|
47
|
+
}
|
|
48
|
+
function openBrowser(url) {
|
|
49
|
+
const platform = os.platform();
|
|
50
|
+
if (platform === "darwin") {
|
|
51
|
+
return spawn("open", [url], { stdio: "ignore", detached: true });
|
|
52
|
+
}
|
|
53
|
+
if (platform === "win32") {
|
|
54
|
+
return spawn("cmd", ["/c", "start", "", url], { stdio: "ignore", detached: true });
|
|
55
|
+
}
|
|
56
|
+
return spawn("xdg-open", [url], { stdio: "ignore", detached: true });
|
|
57
|
+
}
|
|
58
|
+
function redirectToHostedCliAuthPage(response, apiUrl, options) {
|
|
59
|
+
const resultUrl = buildApiUrl(apiUrl, "/cli/auth-result");
|
|
60
|
+
resultUrl.searchParams.set("status", options.status);
|
|
61
|
+
if (options.detail) {
|
|
62
|
+
resultUrl.searchParams.set("detail", options.detail);
|
|
63
|
+
}
|
|
64
|
+
response.statusCode = 302;
|
|
65
|
+
response.setHeader("location", resultUrl.toString());
|
|
66
|
+
response.end();
|
|
67
|
+
}
|
|
68
|
+
async function beginBrowserLogin(apiUrl) {
|
|
69
|
+
const state = crypto.randomUUID();
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
let settled = false;
|
|
72
|
+
const server = http.createServer((request, response) => {
|
|
73
|
+
const requestUrl = new URL(request.url || "/", "http://127.0.0.1");
|
|
74
|
+
if (requestUrl.pathname !== "/callback") {
|
|
75
|
+
response.statusCode = 404;
|
|
76
|
+
response.end("Not found");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const returnedState = requestUrl.searchParams.get("state");
|
|
80
|
+
// Validate state parameter first (CSRF protection) — this check
|
|
81
|
+
// must run unconditionally, before any user-controlled values.
|
|
82
|
+
if (returnedState !== state) {
|
|
83
|
+
redirectToHostedCliAuthPage(response, apiUrl, {
|
|
84
|
+
status: "error",
|
|
85
|
+
detail: "Invalid state parameter",
|
|
86
|
+
});
|
|
87
|
+
if (!settled) {
|
|
88
|
+
settled = true;
|
|
89
|
+
server.close();
|
|
90
|
+
reject(new Error("Invalid state parameter in CLI login callback"));
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const error = requestUrl.searchParams.get("error");
|
|
95
|
+
if (error) {
|
|
96
|
+
redirectToHostedCliAuthPage(response, apiUrl, {
|
|
97
|
+
status: "error",
|
|
98
|
+
detail: error,
|
|
99
|
+
});
|
|
100
|
+
if (!settled) {
|
|
101
|
+
settled = true;
|
|
102
|
+
server.close();
|
|
103
|
+
reject(new Error(error));
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const accessToken = requestUrl.searchParams.get("access_token");
|
|
108
|
+
const refreshToken = requestUrl.searchParams.get("refresh_token");
|
|
109
|
+
const accessTokenExpiresAt = requestUrl.searchParams.get("access_token_expires_at");
|
|
110
|
+
const returnedApiUrl = requestUrl.searchParams.get("api_url");
|
|
111
|
+
if (!accessToken ||
|
|
112
|
+
!refreshToken ||
|
|
113
|
+
!accessTokenExpiresAt ||
|
|
114
|
+
!returnedApiUrl) {
|
|
115
|
+
redirectToHostedCliAuthPage(response, apiUrl, {
|
|
116
|
+
status: "error",
|
|
117
|
+
detail: "Expected access token, refresh token, API URL, and expiration timestamp.",
|
|
118
|
+
});
|
|
119
|
+
if (!settled) {
|
|
120
|
+
settled = true;
|
|
121
|
+
server.close();
|
|
122
|
+
reject(new Error("CLI login callback was missing required fields"));
|
|
123
|
+
}
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
redirectToHostedCliAuthPage(response, returnedApiUrl, {
|
|
127
|
+
status: "success",
|
|
128
|
+
detail: `API endpoint: ${returnedApiUrl}`,
|
|
129
|
+
});
|
|
130
|
+
if (!settled) {
|
|
131
|
+
settled = true;
|
|
132
|
+
server.close();
|
|
133
|
+
resolve({
|
|
134
|
+
accessToken,
|
|
135
|
+
refreshToken,
|
|
136
|
+
accessTokenExpiresAt,
|
|
137
|
+
apiUrl: returnedApiUrl,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
server.listen(0, "127.0.0.1", () => {
|
|
142
|
+
const address = server.address();
|
|
143
|
+
if (!address || typeof address === "string") {
|
|
144
|
+
if (!settled) {
|
|
145
|
+
settled = true;
|
|
146
|
+
server.close();
|
|
147
|
+
reject(new Error("Failed to start local callback server"));
|
|
148
|
+
}
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const callbackUrl = new URL("/callback", `http://127.0.0.1:${address.port}`);
|
|
152
|
+
const loginUrl = buildApiUrl(apiUrl, "/api/v1/cli/login");
|
|
153
|
+
loginUrl.searchParams.set("redirect_uri", callbackUrl.toString());
|
|
154
|
+
loginUrl.searchParams.set("state", state);
|
|
155
|
+
console.log(`Opening browser for cloud login: ${loginUrl.toString()}`);
|
|
156
|
+
console.log("If the browser does not open, paste this URL into your browser.");
|
|
157
|
+
try {
|
|
158
|
+
const child = openBrowser(loginUrl.toString());
|
|
159
|
+
child.unref();
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// Browser open failure is non-fatal; user still has the URL.
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
server.on("error", (error) => {
|
|
166
|
+
if (!settled) {
|
|
167
|
+
settled = true;
|
|
168
|
+
reject(error);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
setTimeout(() => {
|
|
172
|
+
if (!settled) {
|
|
173
|
+
settled = true;
|
|
174
|
+
server.close();
|
|
175
|
+
reject(new Error("Timed out waiting for browser login"));
|
|
176
|
+
}
|
|
177
|
+
}, 5 * 60_000).unref();
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
export async function refreshStoredAuth(auth) {
|
|
181
|
+
const response = await fetch(buildApiUrl(auth.apiUrl, "/api/v1/auth/token/refresh"), {
|
|
182
|
+
method: "POST",
|
|
183
|
+
headers: {
|
|
184
|
+
"content-type": "application/json",
|
|
185
|
+
},
|
|
186
|
+
body: JSON.stringify({ refreshToken: auth.refreshToken }),
|
|
187
|
+
});
|
|
188
|
+
const payload = (await response.json().catch(() => null));
|
|
189
|
+
if (!response.ok || !payload?.accessToken || !payload?.refreshToken || !payload?.accessTokenExpiresAt) {
|
|
190
|
+
throw new Error("Stored cloud login has expired");
|
|
191
|
+
}
|
|
192
|
+
const nextAuth = {
|
|
193
|
+
apiUrl: auth.apiUrl,
|
|
194
|
+
accessToken: payload.accessToken,
|
|
195
|
+
refreshToken: payload.refreshToken,
|
|
196
|
+
accessTokenExpiresAt: payload.accessTokenExpiresAt,
|
|
197
|
+
};
|
|
198
|
+
await writeStoredAuth(nextAuth);
|
|
199
|
+
return nextAuth;
|
|
200
|
+
}
|
|
201
|
+
async function loginWithBrowser(apiUrl) {
|
|
202
|
+
const auth = await beginBrowserLogin(apiUrl);
|
|
203
|
+
await writeStoredAuth(auth);
|
|
204
|
+
console.log(`Logged in to ${auth.apiUrl}`);
|
|
205
|
+
return auth;
|
|
206
|
+
}
|
|
207
|
+
export async function ensureAuthenticated(apiUrl, options) {
|
|
208
|
+
const force = options?.force === true;
|
|
209
|
+
const stored = !force ? await readStoredAuth() : null;
|
|
210
|
+
if (!stored || stored.apiUrl !== apiUrl) {
|
|
211
|
+
return loginWithBrowser(apiUrl);
|
|
212
|
+
}
|
|
213
|
+
if (!shouldRefresh(stored.accessTokenExpiresAt)) {
|
|
214
|
+
return stored;
|
|
215
|
+
}
|
|
216
|
+
try {
|
|
217
|
+
return await refreshStoredAuth(stored);
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return loginWithBrowser(apiUrl);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function apiFetch(apiUrl, accessToken, requestPath, init) {
|
|
224
|
+
return fetch(buildApiUrl(apiUrl, requestPath), {
|
|
225
|
+
...init,
|
|
226
|
+
headers: {
|
|
227
|
+
"content-type": "application/json",
|
|
228
|
+
authorization: `Bearer ${accessToken}`,
|
|
229
|
+
...(init.headers ?? {}),
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
export async function authorizedApiFetch(auth, requestPath, init) {
|
|
234
|
+
let activeAuth = auth;
|
|
235
|
+
let response = await apiFetch(activeAuth.apiUrl, activeAuth.accessToken, requestPath, init);
|
|
236
|
+
if (response.status !== 401) {
|
|
237
|
+
return { response, auth: activeAuth };
|
|
238
|
+
}
|
|
239
|
+
try {
|
|
240
|
+
activeAuth = await refreshStoredAuth(activeAuth);
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
activeAuth = await loginWithBrowser(activeAuth.apiUrl);
|
|
244
|
+
}
|
|
245
|
+
response = await apiFetch(activeAuth.apiUrl, activeAuth.accessToken, requestPath, init);
|
|
246
|
+
return { response, auth: activeAuth };
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { readStoredAuth, writeStoredAuth, clearStoredAuth, refreshStoredAuth, ensureAuthenticated, authorizedApiFetch, } from "./auth.js";
|
|
2
|
+
export { CloudApiClient, buildApiUrl, type CloudApiClientOptions, type CloudApiClientSnapshot, } from "./api-client.js";
|
|
3
|
+
export { runWorkflow, getRunStatus, getRunLogs, cancelWorkflow, syncWorkflowPatch, resolveWorkflowInput, inferWorkflowFileType, shouldSyncCodeByDefault, } from "./workflows.js";
|
|
4
|
+
export { type StoredAuth, type WhoAmIResponse, type AuthSessionResponse, type WorkflowFileType, type RunWorkflowResponse, type WorkflowLogsResponse, type SyncPatchResponse, SUPPORTED_PROVIDERS, REFRESH_WINDOW_MS, AUTH_FILE_PATH, defaultApiUrl, isSupportedProvider, } from "./types.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { readStoredAuth, writeStoredAuth, clearStoredAuth, refreshStoredAuth, ensureAuthenticated, authorizedApiFetch, } from "./auth.js";
|
|
2
|
+
export { CloudApiClient, buildApiUrl, } from "./api-client.js";
|
|
3
|
+
export { runWorkflow, getRunStatus, getRunLogs, cancelWorkflow, syncWorkflowPatch, resolveWorkflowInput, inferWorkflowFileType, shouldSyncCodeByDefault, } from "./workflows.js";
|
|
4
|
+
export { SUPPORTED_PROVIDERS, REFRESH_WINDOW_MS, AUTH_FILE_PATH, defaultApiUrl, isSupportedProvider, } from "./types.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,cAAc,EACd,WAAW,GAGZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAQL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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 WorkflowFileType = "yaml" | "ts" | "py";
|
|
45
|
+
export type RunWorkflowOptions = {
|
|
46
|
+
apiUrl?: string;
|
|
47
|
+
fileType?: WorkflowFileType;
|
|
48
|
+
syncCode?: boolean;
|
|
49
|
+
};
|
|
50
|
+
export type RunWorkflowResponse = {
|
|
51
|
+
runId: string;
|
|
52
|
+
sandboxId?: string;
|
|
53
|
+
status: string;
|
|
54
|
+
[key: string]: unknown;
|
|
55
|
+
};
|
|
56
|
+
export type WorkflowLogsResponse = {
|
|
57
|
+
content: string;
|
|
58
|
+
offset: number;
|
|
59
|
+
totalSize: number;
|
|
60
|
+
done: boolean;
|
|
61
|
+
[key: string]: unknown;
|
|
62
|
+
};
|
|
63
|
+
export type SyncPatchResponse = {
|
|
64
|
+
patch: string;
|
|
65
|
+
hasChanges: boolean;
|
|
66
|
+
[key: string]: unknown;
|
|
67
|
+
};
|
|
68
|
+
export declare const SUPPORTED_PROVIDERS: readonly ["anthropic", "openai", "google", "cursor", "opencode", "droid"];
|
|
69
|
+
export declare const REFRESH_WINDOW_MS = 60000;
|
|
70
|
+
export declare const AUTH_FILE_PATH: string;
|
|
71
|
+
export declare function defaultApiUrl(): string;
|
|
72
|
+
export declare function isSupportedProvider(provider: string): boolean;
|
|
73
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,mBAAmB,EAAE;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,2EAOtB,CAAC;AAEX,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,cAAc,QAA6D,CAAC;AAEzF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export const SUPPORTED_PROVIDERS = [
|
|
4
|
+
"anthropic",
|
|
5
|
+
"openai",
|
|
6
|
+
"google",
|
|
7
|
+
"cursor",
|
|
8
|
+
"opencode",
|
|
9
|
+
"droid",
|
|
10
|
+
];
|
|
11
|
+
export const REFRESH_WINDOW_MS = 60_000;
|
|
12
|
+
export const AUTH_FILE_PATH = path.join(os.homedir(), ".agent-relay", "cloud-auth.json");
|
|
13
|
+
export function defaultApiUrl() {
|
|
14
|
+
return process.env.CLOUD_API_URL?.trim() || "https://agentrelay.dev";
|
|
15
|
+
}
|
|
16
|
+
export function isSupportedProvider(provider) {
|
|
17
|
+
return SUPPORTED_PROVIDERS.includes(provider);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA6E7B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;CACC,CAAC;AAEX,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,wBAAwB,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,QAAgD,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type WorkflowFileType, type RunWorkflowResponse, type WorkflowLogsResponse, type SyncPatchResponse } from "./types.js";
|
|
2
|
+
type ResolvedWorkflowInput = {
|
|
3
|
+
workflow: string;
|
|
4
|
+
fileType: WorkflowFileType;
|
|
5
|
+
sourceFileType?: WorkflowFileType;
|
|
6
|
+
};
|
|
7
|
+
type RunWorkflowOptions = {
|
|
8
|
+
apiUrl?: string;
|
|
9
|
+
fileType?: WorkflowFileType;
|
|
10
|
+
syncCode?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function inferWorkflowFileType(filePath: string): WorkflowFileType | null;
|
|
13
|
+
export declare function shouldSyncCodeByDefault(_workflowArg: string, _explicitFileType?: WorkflowFileType): boolean;
|
|
14
|
+
export declare function resolveWorkflowInput(workflowArg: string, explicitFileType?: WorkflowFileType): Promise<ResolvedWorkflowInput>;
|
|
15
|
+
export declare function runWorkflow(workflowArg: string, options?: RunWorkflowOptions): Promise<RunWorkflowResponse>;
|
|
16
|
+
export declare function getRunStatus(runId: string, options?: {
|
|
17
|
+
apiUrl?: string;
|
|
18
|
+
}): Promise<Record<string, unknown>>;
|
|
19
|
+
export declare function cancelWorkflow(runId: string, options?: {
|
|
20
|
+
apiUrl?: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
runId: string;
|
|
23
|
+
status: string;
|
|
24
|
+
}>;
|
|
25
|
+
export declare function getRunLogs(runId: string, options?: {
|
|
26
|
+
apiUrl?: string;
|
|
27
|
+
offset?: number;
|
|
28
|
+
sandboxId?: string;
|
|
29
|
+
}): Promise<WorkflowLogsResponse>;
|
|
30
|
+
export declare function syncWorkflowPatch(runId: string, options?: {
|
|
31
|
+
apiUrl?: string;
|
|
32
|
+
}): Promise<SyncPatchResponse>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAQA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/I,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC,CAAC;AAgBF,KAAK,kBAAkB,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA0DF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAe/E;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,OAAO,CAET;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,qBAAqB,CAAC,CA8BhC;AAED,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAkG9B;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqBlC;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5C;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,oBAAoB,CAAC,CAkC/B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,iBAAiB,CAAC,CA2C5B"}
|