@floomhq/floom 5.0.3 → 5.0.5
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/LICENSE +6 -6
- package/README.md +356 -356
- package/bin/floom-mcp +9 -9
- package/bin/workeros-mcp +13 -13
- package/dist/cli.js +22 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.d.ts +9 -0
- package/dist/commands/auth.js +55 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/completion.js +85 -80
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/login.js +6 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/run.js +19 -4
- package/dist/commands/run.js.map +1 -1
- package/dist/lib/credentials.d.ts +17 -0
- package/dist/lib/credentials.js +191 -14
- package/dist/lib/credentials.js.map +1 -1
- package/dist/server.js +37 -1
- package/dist/server.js.map +1 -1
- package/package.json +46 -46
|
@@ -11,11 +11,28 @@ export type StoredCredentials = {
|
|
|
11
11
|
workspace_id?: string;
|
|
12
12
|
workspace_name?: string;
|
|
13
13
|
active_mcp_label?: string;
|
|
14
|
+
account_id?: string;
|
|
15
|
+
account_label?: string;
|
|
14
16
|
authed_at: string;
|
|
15
17
|
};
|
|
16
18
|
export declare function credentialsPath(): string;
|
|
19
|
+
export declare function credentialsAccountsDir(): string;
|
|
20
|
+
export declare function activeAccountPath(): string;
|
|
17
21
|
export declare function readCredentials(): Promise<StoredCredentials | null>;
|
|
18
22
|
export declare function writeCredentials(credentials: StoredCredentials): Promise<void>;
|
|
19
23
|
export declare function updateCredentials(partial: Partial<StoredCredentials>): Promise<StoredCredentials>;
|
|
20
24
|
export declare function clearCredentials(): Promise<boolean>;
|
|
25
|
+
export type CredentialAccount = {
|
|
26
|
+
id: string;
|
|
27
|
+
label: string;
|
|
28
|
+
mode: AuthMode;
|
|
29
|
+
api_base: string;
|
|
30
|
+
workspace_id?: string;
|
|
31
|
+
workspace_name?: string;
|
|
32
|
+
active: boolean;
|
|
33
|
+
authed_at: string;
|
|
34
|
+
};
|
|
35
|
+
export declare function listCredentialAccounts(): Promise<CredentialAccount[]>;
|
|
36
|
+
export declare function switchCredentialAccount(target: string): Promise<StoredCredentials>;
|
|
37
|
+
export declare function removeCredentialAccount(target?: string): Promise<boolean>;
|
|
21
38
|
export declare function maskSecret(secret: string): string;
|
package/dist/lib/credentials.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { chmodSync, existsSync } from "node:fs";
|
|
2
|
-
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
2
|
+
import { mkdir, readdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import { basename, dirname, join } from "node:path";
|
|
4
4
|
import { getCommandName } from "./command-name.js";
|
|
5
5
|
const DEFAULT_OSS_API_BASE = "https://localhost:8000";
|
|
6
6
|
const DEFAULT_CLOUD_API_BASE = "https://workeros-api.floom.dev";
|
|
@@ -29,19 +29,28 @@ function normalizeStoredApiBase(mode, value) {
|
|
|
29
29
|
function resolveHomeDir() {
|
|
30
30
|
return process.env.HOME || process.env.USERPROFILE || "";
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
function resolveConfigDir() {
|
|
33
|
+
const xdgConfigHome = process.env.XDG_CONFIG_HOME?.trim();
|
|
34
|
+
if (xdgConfigHome) {
|
|
35
|
+
return xdgConfigHome;
|
|
36
|
+
}
|
|
33
37
|
const home = resolveHomeDir();
|
|
34
38
|
if (!home) {
|
|
35
39
|
throw new Error("HOME is required to read CLI credentials");
|
|
36
40
|
}
|
|
37
|
-
return join(home, ".config"
|
|
41
|
+
return join(home, ".config");
|
|
42
|
+
}
|
|
43
|
+
export function credentialsPath() {
|
|
44
|
+
return join(resolveConfigDir(), "floom", "credentials.json");
|
|
45
|
+
}
|
|
46
|
+
export function credentialsAccountsDir() {
|
|
47
|
+
return join(dirname(credentialsPath()), "credentials");
|
|
48
|
+
}
|
|
49
|
+
export function activeAccountPath() {
|
|
50
|
+
return join(dirname(credentialsPath()), "active");
|
|
38
51
|
}
|
|
39
52
|
function legacyCredentialsPath() {
|
|
40
|
-
|
|
41
|
-
if (!home) {
|
|
42
|
-
throw new Error("HOME is required to read CLI credentials");
|
|
43
|
-
}
|
|
44
|
-
return join(home, ".config", "workeros", "credentials.json");
|
|
53
|
+
return join(resolveConfigDir(), "workeros", "credentials.json");
|
|
45
54
|
}
|
|
46
55
|
export async function readCredentials() {
|
|
47
56
|
const envCloudToken = process.env.WORKEROS_API_TOKEN?.trim();
|
|
@@ -67,7 +76,14 @@ export async function readCredentials() {
|
|
|
67
76
|
authed_at: new Date().toISOString(),
|
|
68
77
|
};
|
|
69
78
|
}
|
|
70
|
-
const
|
|
79
|
+
const active = await readActiveAccountCredentials();
|
|
80
|
+
const path = active ? "" : (existsSync(credentialsPath()) ? credentialsPath() : legacyCredentialsPath());
|
|
81
|
+
if (active) {
|
|
82
|
+
if (envCloudRequested() && active.mode !== "cloud") {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return active;
|
|
86
|
+
}
|
|
71
87
|
if (!existsSync(path)) {
|
|
72
88
|
return null;
|
|
73
89
|
}
|
|
@@ -103,15 +119,23 @@ export async function readCredentials() {
|
|
|
103
119
|
workspace_id: parsed.workspace_id,
|
|
104
120
|
workspace_name: parsed.workspace_name,
|
|
105
121
|
active_mcp_label: parsed.active_mcp_label,
|
|
122
|
+
account_id: parsed.account_id,
|
|
123
|
+
account_label: parsed.account_label,
|
|
106
124
|
authed_at: parsed.authed_at || new Date().toISOString(),
|
|
107
125
|
};
|
|
108
126
|
}
|
|
109
127
|
export async function writeCredentials(credentials) {
|
|
110
128
|
const path = credentialsPath();
|
|
111
129
|
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
112
|
-
const
|
|
130
|
+
const accountId = credentials.account_id || inferAccountId(credentials);
|
|
131
|
+
const accountLabel = credentials.account_label || inferAccountLabel(credentials);
|
|
132
|
+
const normalized = { ...credentials, account_id: accountId, account_label: accountLabel };
|
|
133
|
+
const payload = JSON.stringify(normalized, null, 2);
|
|
113
134
|
await writeFile(path, `${payload}\n`, "utf8");
|
|
114
135
|
chmodSync(path, 0o600);
|
|
136
|
+
await writeAccountCredentials(normalized);
|
|
137
|
+
await writeFile(activeAccountPath(), `${accountId}\n`, "utf8");
|
|
138
|
+
chmodSync(activeAccountPath(), 0o600);
|
|
115
139
|
}
|
|
116
140
|
export async function updateCredentials(partial) {
|
|
117
141
|
const current = await readCredentials();
|
|
@@ -123,10 +147,163 @@ export async function updateCredentials(partial) {
|
|
|
123
147
|
return next;
|
|
124
148
|
}
|
|
125
149
|
export async function clearCredentials() {
|
|
126
|
-
const paths = [credentialsPath(), legacyCredentialsPath()];
|
|
150
|
+
const paths = [credentialsPath(), legacyCredentialsPath(), activeAccountPath()];
|
|
127
151
|
const existing = paths.filter((path) => existsSync(path));
|
|
128
|
-
|
|
129
|
-
|
|
152
|
+
const accountDirExists = existsSync(credentialsAccountsDir());
|
|
153
|
+
await Promise.all([
|
|
154
|
+
...existing.map((path) => rm(path, { force: true })),
|
|
155
|
+
rm(credentialsAccountsDir(), { recursive: true, force: true }),
|
|
156
|
+
]);
|
|
157
|
+
return existing.length > 0 || accountDirExists;
|
|
158
|
+
}
|
|
159
|
+
function sanitizeAccountId(value) {
|
|
160
|
+
const cleaned = value.trim().toLowerCase().replace(/[^a-z0-9._@-]+/g, "-").replace(/^-+|-+$/g, "");
|
|
161
|
+
return cleaned.slice(0, 120) || "default";
|
|
162
|
+
}
|
|
163
|
+
function inferAccountLabel(credentials) {
|
|
164
|
+
return (credentials.account_label ||
|
|
165
|
+
credentials.user ||
|
|
166
|
+
credentials.account_id ||
|
|
167
|
+
credentials.workspace_name ||
|
|
168
|
+
credentials.workspace_id ||
|
|
169
|
+
credentials.api_base);
|
|
170
|
+
}
|
|
171
|
+
function inferAccountId(credentials) {
|
|
172
|
+
return sanitizeAccountId(credentials.account_id ||
|
|
173
|
+
credentials.user ||
|
|
174
|
+
credentials.account_label ||
|
|
175
|
+
[credentials.mode, credentials.workspace_id || credentials.workspace_name || credentials.api_base].join("-"));
|
|
176
|
+
}
|
|
177
|
+
function accountPath(accountId) {
|
|
178
|
+
return join(credentialsAccountsDir(), `${sanitizeAccountId(accountId)}.json`);
|
|
179
|
+
}
|
|
180
|
+
function isValidCredentials(parsed) {
|
|
181
|
+
const mode = parsed.mode === "cloud" ? "cloud" : "oss";
|
|
182
|
+
if (mode === "oss")
|
|
183
|
+
return Boolean(parsed.api_secret);
|
|
184
|
+
return Boolean(parsed.api_token || (parsed.refresh_token && parsed.supabase_url));
|
|
185
|
+
}
|
|
186
|
+
async function readCredentialFile(path) {
|
|
187
|
+
if (!existsSync(path))
|
|
188
|
+
return null;
|
|
189
|
+
const raw = (await readFile(path, "utf8")).trim();
|
|
190
|
+
if (!raw)
|
|
191
|
+
return null;
|
|
192
|
+
const parsed = JSON.parse(raw);
|
|
193
|
+
if (!isValidCredentials(parsed))
|
|
194
|
+
return null;
|
|
195
|
+
const mode = parsed.mode === "cloud" ? "cloud" : "oss";
|
|
196
|
+
return {
|
|
197
|
+
api_base: normalizeStoredApiBase(mode, parsed.api_base),
|
|
198
|
+
mode,
|
|
199
|
+
api_secret: parsed.api_secret,
|
|
200
|
+
api_token: parsed.api_token,
|
|
201
|
+
refresh_token: parsed.refresh_token,
|
|
202
|
+
supabase_url: parsed.supabase_url ? parsed.supabase_url.replace(/\/+$/, "") : undefined,
|
|
203
|
+
supabase_anon_key: parsed.supabase_anon_key,
|
|
204
|
+
user: envUser() || parsed.user,
|
|
205
|
+
workspace_id: parsed.workspace_id,
|
|
206
|
+
workspace_name: parsed.workspace_name,
|
|
207
|
+
active_mcp_label: parsed.active_mcp_label,
|
|
208
|
+
account_id: parsed.account_id,
|
|
209
|
+
account_label: parsed.account_label,
|
|
210
|
+
authed_at: parsed.authed_at || new Date().toISOString(),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
async function readActiveAccountCredentials() {
|
|
214
|
+
if (!existsSync(activeAccountPath()))
|
|
215
|
+
return null;
|
|
216
|
+
const accountId = (await readFile(activeAccountPath(), "utf8")).trim();
|
|
217
|
+
if (!accountId)
|
|
218
|
+
return null;
|
|
219
|
+
return readCredentialFile(accountPath(accountId));
|
|
220
|
+
}
|
|
221
|
+
async function writeAccountCredentials(credentials) {
|
|
222
|
+
const accountId = credentials.account_id || inferAccountId(credentials);
|
|
223
|
+
await mkdir(credentialsAccountsDir(), { recursive: true, mode: 0o700 });
|
|
224
|
+
const path = accountPath(accountId);
|
|
225
|
+
await writeFile(path, `${JSON.stringify({ ...credentials, account_id: accountId }, null, 2)}\n`, "utf8");
|
|
226
|
+
chmodSync(path, 0o600);
|
|
227
|
+
}
|
|
228
|
+
export async function listCredentialAccounts() {
|
|
229
|
+
const activeId = existsSync(activeAccountPath()) ? (await readFile(activeAccountPath(), "utf8")).trim() : "";
|
|
230
|
+
const ids = new Set();
|
|
231
|
+
if (existsSync(credentialsAccountsDir())) {
|
|
232
|
+
for (const entry of await readdir(credentialsAccountsDir())) {
|
|
233
|
+
if (entry.endsWith(".json"))
|
|
234
|
+
ids.add(basename(entry, ".json"));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
const active = await readCredentialFile(credentialsPath());
|
|
238
|
+
if (active)
|
|
239
|
+
ids.add(active.account_id || inferAccountId(active));
|
|
240
|
+
const rows = [];
|
|
241
|
+
for (const id of [...ids].sort()) {
|
|
242
|
+
const creds = await readCredentialFile(accountPath(id));
|
|
243
|
+
const account = creds || (active && (active.account_id || inferAccountId(active)) === id ? active : null);
|
|
244
|
+
if (!account)
|
|
245
|
+
continue;
|
|
246
|
+
const accountId = account.account_id || inferAccountId(account);
|
|
247
|
+
rows.push({
|
|
248
|
+
id: accountId,
|
|
249
|
+
label: account.account_label || inferAccountLabel(account),
|
|
250
|
+
mode: account.mode,
|
|
251
|
+
api_base: account.api_base,
|
|
252
|
+
workspace_id: account.workspace_id,
|
|
253
|
+
workspace_name: account.workspace_name,
|
|
254
|
+
active: activeId ? accountId === activeId : Boolean(active && (active.account_id || inferAccountId(active)) === accountId),
|
|
255
|
+
authed_at: account.authed_at,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return rows;
|
|
259
|
+
}
|
|
260
|
+
function accountMatches(account, target) {
|
|
261
|
+
const needle = target.trim().toLowerCase();
|
|
262
|
+
return [
|
|
263
|
+
account.account_id,
|
|
264
|
+
account.account_label,
|
|
265
|
+
account.user,
|
|
266
|
+
account.workspace_id,
|
|
267
|
+
account.workspace_name,
|
|
268
|
+
].some((value) => typeof value === "string" && value.trim().toLowerCase() === needle);
|
|
269
|
+
}
|
|
270
|
+
export async function switchCredentialAccount(target) {
|
|
271
|
+
for (const entry of existsSync(credentialsAccountsDir()) ? await readdir(credentialsAccountsDir()) : []) {
|
|
272
|
+
if (!entry.endsWith(".json"))
|
|
273
|
+
continue;
|
|
274
|
+
const creds = await readCredentialFile(join(credentialsAccountsDir(), entry));
|
|
275
|
+
if (!creds || !accountMatches(creds, target))
|
|
276
|
+
continue;
|
|
277
|
+
await writeCredentials(creds);
|
|
278
|
+
return creds;
|
|
279
|
+
}
|
|
280
|
+
const current = await readCredentialFile(credentialsPath());
|
|
281
|
+
if (current && accountMatches(current, target)) {
|
|
282
|
+
await writeCredentials(current);
|
|
283
|
+
return current;
|
|
284
|
+
}
|
|
285
|
+
throw new Error(`No saved account matches ${JSON.stringify(target)}.`);
|
|
286
|
+
}
|
|
287
|
+
export async function removeCredentialAccount(target) {
|
|
288
|
+
if (!target)
|
|
289
|
+
return clearCredentials();
|
|
290
|
+
let removed = false;
|
|
291
|
+
for (const entry of existsSync(credentialsAccountsDir()) ? await readdir(credentialsAccountsDir()) : []) {
|
|
292
|
+
if (!entry.endsWith(".json"))
|
|
293
|
+
continue;
|
|
294
|
+
const path = join(credentialsAccountsDir(), entry);
|
|
295
|
+
const creds = await readCredentialFile(path);
|
|
296
|
+
if (!creds || !accountMatches(creds, target))
|
|
297
|
+
continue;
|
|
298
|
+
await rm(path, { force: true });
|
|
299
|
+
removed = true;
|
|
300
|
+
}
|
|
301
|
+
const current = await readCredentialFile(credentialsPath());
|
|
302
|
+
if (current && accountMatches(current, target)) {
|
|
303
|
+
await rm(credentialsPath(), { force: true });
|
|
304
|
+
await rm(activeAccountPath(), { force: true });
|
|
305
|
+
}
|
|
306
|
+
return removed;
|
|
130
307
|
}
|
|
131
308
|
export function maskSecret(secret) {
|
|
132
309
|
if (!secret)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/lib/credentials.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/lib/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -312,10 +312,19 @@ async function listTriggers(workerId, app) {
|
|
|
312
312
|
async function watchRunEvents(runId, timeoutMs) {
|
|
313
313
|
const controller = new AbortController();
|
|
314
314
|
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
315
|
+
const pollIntervalMs = Math.min(1000, Math.max(100, timeoutMs));
|
|
315
316
|
const events = [];
|
|
316
317
|
let status;
|
|
317
318
|
let buffer = "";
|
|
318
319
|
let sawTerminalStatus = false;
|
|
320
|
+
async function finalRunStatus() {
|
|
321
|
+
const run = await request("GET", `/runs/${encodeURIComponent(runId)}`);
|
|
322
|
+
const finalStatus = typeof run.status === "string" ? run.status : undefined;
|
|
323
|
+
if (finalStatus && TERMINAL_RUN_STATUSES.has(finalStatus)) {
|
|
324
|
+
return { run_id: runId, status: finalStatus, run, events };
|
|
325
|
+
}
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
319
328
|
try {
|
|
320
329
|
const response = await fetch(buildUrl(`/runs/${encodeURIComponent(runId)}/events`), {
|
|
321
330
|
method: "GET",
|
|
@@ -338,11 +347,30 @@ async function watchRunEvents(runId, timeoutMs) {
|
|
|
338
347
|
}
|
|
339
348
|
const reader = response.body.getReader();
|
|
340
349
|
const decoder = new TextDecoder();
|
|
350
|
+
let pendingRead = reader.read().then((result) => ({ kind: "read", result }), (error) => ({ kind: "readError", error }));
|
|
341
351
|
while (true) {
|
|
342
|
-
const
|
|
352
|
+
const raced = await Promise.race([
|
|
353
|
+
pendingRead,
|
|
354
|
+
new Promise((resolve) => {
|
|
355
|
+
setTimeout(() => resolve({ kind: "poll" }), pollIntervalMs);
|
|
356
|
+
}),
|
|
357
|
+
]);
|
|
358
|
+
if (raced.kind === "poll") {
|
|
359
|
+
const final = await finalRunStatus();
|
|
360
|
+
if (final) {
|
|
361
|
+
await reader.cancel();
|
|
362
|
+
return final;
|
|
363
|
+
}
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
if (raced.kind === "readError") {
|
|
367
|
+
throw raced.error;
|
|
368
|
+
}
|
|
369
|
+
const { done, value } = raced.result;
|
|
343
370
|
if (done) {
|
|
344
371
|
break;
|
|
345
372
|
}
|
|
373
|
+
pendingRead = reader.read().then((result) => ({ kind: "read", result }), (error) => ({ kind: "readError", error }));
|
|
346
374
|
buffer += decoder.decode(value, { stream: true });
|
|
347
375
|
const chunks = buffer.split(/\r?\n\r?\n/);
|
|
348
376
|
buffer = chunks.pop() || "";
|
|
@@ -372,6 +400,10 @@ async function watchRunEvents(runId, timeoutMs) {
|
|
|
372
400
|
}
|
|
373
401
|
catch (error) {
|
|
374
402
|
if (error instanceof DOMException && error.name === "AbortError") {
|
|
403
|
+
const final = await finalRunStatus();
|
|
404
|
+
if (final) {
|
|
405
|
+
return final;
|
|
406
|
+
}
|
|
375
407
|
throw new FloomApiError(`Timed out watching run ${runId} after ${timeoutMs}ms`);
|
|
376
408
|
}
|
|
377
409
|
throw error;
|
|
@@ -379,6 +411,10 @@ async function watchRunEvents(runId, timeoutMs) {
|
|
|
379
411
|
finally {
|
|
380
412
|
clearTimeout(timeout);
|
|
381
413
|
}
|
|
414
|
+
const final = await finalRunStatus();
|
|
415
|
+
if (final) {
|
|
416
|
+
return final;
|
|
417
|
+
}
|
|
382
418
|
return { run_id: runId, status: status || "unknown", events };
|
|
383
419
|
}
|
|
384
420
|
function parseSseEvent(chunk) {
|