@floehq/cli 0.1.0 → 0.2.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/README.md CHANGED
@@ -27,6 +27,9 @@ floe file manifest <fileId>
27
27
  floe file stream-url <fileId>
28
28
  floe ops health
29
29
  floe config show
30
+ floe config path
31
+ floe config set base-url https://api.floehq.com/v1
32
+ floe config unset api-key
30
33
  ```
31
34
 
32
35
  Shortcuts are also supported for the most common lookups:
@@ -38,3 +41,31 @@ floe metadata <fileId>
38
41
  floe manifest <fileId>
39
42
  floe stream-url <fileId>
40
43
  ```
44
+
45
+ ## Config
46
+
47
+ The CLI can persist defaults in a local config file. Precedence is:
48
+
49
+ ```txt
50
+ flags > environment variables > config file > defaults
51
+ ```
52
+
53
+ Supported persistent keys:
54
+
55
+ ```txt
56
+ base-url
57
+ api-key
58
+ bearer
59
+ owner-address
60
+ auth-user
61
+ wallet-address
62
+ ```
63
+
64
+ Examples:
65
+
66
+ ```bash
67
+ floe config path
68
+ floe config set base-url https://api.floehq.com/v1
69
+ floe config set api-key sk_live_xxx
70
+ floe config unset api-key
71
+ ```
package/dist/cli.js CHANGED
@@ -1,99 +1,217 @@
1
1
  #!/usr/bin/env node
2
2
  import { FloeApiError, FloeClient, createNodeFileResumeStore } from "@floehq/sdk";
3
3
  import fs from "node:fs/promises";
4
+ import os from "node:os";
4
5
  import path from "node:path";
6
+ const CONFIG_KEY_MAP = {
7
+ "base-url": "baseUrl",
8
+ "api-key": "apiKey",
9
+ bearer: "bearerToken",
10
+ "owner-address": "ownerAddress",
11
+ "auth-user": "authUser",
12
+ "wallet-address": "walletAddress",
13
+ };
14
+ const ANSI = {
15
+ reset: "\x1b[0m",
16
+ bold: "\x1b[1m",
17
+ dim: "\x1b[2m",
18
+ cyan: "\x1b[36m",
19
+ blue: "\x1b[34m",
20
+ green: "\x1b[32m",
21
+ yellow: "\x1b[33m",
22
+ red: "\x1b[31m",
23
+ gray: "\x1b[90m",
24
+ };
25
+ const COLOR_ENABLED = Boolean(process.stdout.isTTY && !process.env.NO_COLOR);
26
+ function paint(text, ...codes) {
27
+ if (!COLOR_ENABLED || codes.length === 0)
28
+ return text;
29
+ return `${codes.join("")}${text}${ANSI.reset}`;
30
+ }
31
+ function headline(text) {
32
+ return paint(text, ANSI.bold, ANSI.cyan);
33
+ }
34
+ function section(title) {
35
+ return `\n${paint(title, ANSI.bold, ANSI.blue)}`;
36
+ }
37
+ function valueLine(label, value) {
38
+ const rendered = value === null || value === undefined || value === "" ? paint("none", ANSI.gray) : String(value);
39
+ return ` ${paint(label.padEnd(16), ANSI.dim)} ${rendered}`;
40
+ }
41
+ function pushOptionalLine(lines, label, value) {
42
+ if (value === null || value === undefined || value === "")
43
+ return;
44
+ lines.push(valueLine(label, value));
45
+ }
46
+ function infoLine(message) {
47
+ process.stderr.write(`${paint(">", ANSI.bold, ANSI.cyan)} ${message}\n`);
48
+ }
49
+ function verboseLine(options, label, value) {
50
+ if (!options.verbose || options.json)
51
+ return;
52
+ const suffix = value === undefined ? "" : ` ${String(value)}`;
53
+ process.stderr.write(`${paint("verbose", ANSI.dim, ANSI.gray)} ${label}${suffix}\n`);
54
+ }
55
+ function statusBadge(status) {
56
+ const normalized = (status ?? "unknown").toLowerCase();
57
+ if (["ready", "up", "healthy", "ok"].includes(normalized)) {
58
+ return paint(normalized.toUpperCase(), ANSI.bold, ANSI.green);
59
+ }
60
+ if (["pending", "processing", "queued", "partial"].includes(normalized)) {
61
+ return paint(normalized.toUpperCase(), ANSI.bold, ANSI.yellow);
62
+ }
63
+ return paint(normalized.toUpperCase(), ANSI.bold, ANSI.red);
64
+ }
65
+ function formatBytes(bytes) {
66
+ if (typeof bytes !== "number" || !Number.isFinite(bytes))
67
+ return "unknown";
68
+ if (bytes < 1024)
69
+ return `${bytes} B`;
70
+ if (bytes < 1024 ** 2)
71
+ return `${(bytes / 1024).toFixed(1)} KB`;
72
+ if (bytes < 1024 ** 3)
73
+ return `${(bytes / 1024 ** 2).toFixed(1)} MB`;
74
+ return `${(bytes / 1024 ** 3).toFixed(1)} GB`;
75
+ }
76
+ function formatPercent(part, total) {
77
+ if (!Number.isFinite(part) || !Number.isFinite(total) || total <= 0)
78
+ return "0%";
79
+ return `${Math.min(100, Math.max(0, (part / total) * 100)).toFixed(0)}%`;
80
+ }
81
+ function progressBar(current, total, width = 28) {
82
+ if (!Number.isFinite(current) || !Number.isFinite(total) || total <= 0) {
83
+ return `[${"-".repeat(width)}]`;
84
+ }
85
+ const ratio = Math.min(1, Math.max(0, current / total));
86
+ const filled = Math.round(ratio * width);
87
+ return `[${"=".repeat(filled)}${"-".repeat(Math.max(0, width - filled))}]`;
88
+ }
89
+ function writeLines(lines) {
90
+ process.stdout.write(`${lines.join("\n")}\n`);
91
+ }
5
92
  function printHelp(topic) {
6
93
  const normalized = (topic ?? "").toLowerCase();
94
+ if (normalized === "config") {
95
+ writeLines([
96
+ headline("Floe CLI Config"),
97
+ "Persist defaults for the CLI so you do not have to repeat flags.",
98
+ section("Usage"),
99
+ " floe config show",
100
+ " floe config path",
101
+ " floe config set <key> <value>",
102
+ " floe config unset <key>",
103
+ section("Keys"),
104
+ " base-url",
105
+ " api-key",
106
+ " bearer",
107
+ " owner-address",
108
+ " auth-user",
109
+ " wallet-address",
110
+ section("Precedence"),
111
+ " flags override env vars, env vars override config, config overrides defaults",
112
+ section("Examples"),
113
+ " floe config set base-url https://api.floehq.com/v1",
114
+ " floe config set api-key sk_live_xxx",
115
+ " floe config unset api-key",
116
+ " floe config path",
117
+ ]);
118
+ return;
119
+ }
7
120
  if (normalized === "upload") {
8
- process.stdout.write(`Floe CLI: upload
9
-
10
- Usage:
11
- floe upload <file> [options]
12
- floe upload status <uploadId> [options]
13
- floe upload cancel <uploadId> [options]
14
- floe upload complete <uploadId> [options]
15
- floe upload wait <uploadId> [options]
16
-
17
- Notes:
18
- upload resume is automatic by default through the local resume store
19
- use --no-resume to disable that behavior
20
- `);
121
+ writeLines([
122
+ headline("Floe CLI Upload"),
123
+ "Ship a file, inspect the upload, or finish an interrupted flow.",
124
+ section("Usage"),
125
+ " floe upload <file> [options]",
126
+ " floe upload status <uploadId> [options]",
127
+ " floe upload cancel <uploadId> [options]",
128
+ " floe upload complete <uploadId> [options]",
129
+ " floe upload wait <uploadId> [options]",
130
+ section("Notes"),
131
+ " resume is enabled by default through the local resume store",
132
+ " use --no-resume when you want a clean upload session",
133
+ section("Examples"),
134
+ " floe upload ./movie.mp4",
135
+ " floe upload wait 123e4567-e89b-12d3-a456-426614174000",
136
+ ]);
21
137
  return;
22
138
  }
23
139
  if (normalized === "file") {
24
- process.stdout.write(`Floe CLI: file
25
-
26
- Usage:
27
- floe file metadata <fileId> [options]
28
- floe file manifest <fileId> [options]
29
- floe file stream-url <fileId> [options]
30
- `);
140
+ writeLines([
141
+ headline("Floe CLI File"),
142
+ "Inspect file metadata, fetch manifests, and derive stream URLs.",
143
+ section("Usage"),
144
+ " floe file metadata <fileId> [options]",
145
+ " floe file manifest <fileId> [options]",
146
+ " floe file stream-url <fileId> [options]",
147
+ ]);
31
148
  return;
32
149
  }
33
150
  if (normalized === "ops") {
34
- process.stdout.write(`Floe CLI: ops
35
-
36
- Usage:
37
- floe ops health [options]
38
- `);
151
+ writeLines([
152
+ headline("Floe CLI Ops"),
153
+ "Check whether the Floe deployment is alive and ready to serve traffic.",
154
+ section("Usage"),
155
+ " floe ops health [options]",
156
+ ]);
39
157
  return;
40
158
  }
41
- process.stdout.write(`Floe CLI
42
-
43
- Usage:
44
- floe <group> <command> [args] [options]
45
-
46
- Groups:
47
- upload upload, status, cancel, complete, and wait flows
48
- file metadata, manifest, and stream URL lookups
49
- ops health and operator-friendly checks
50
- config show the effective local CLI configuration
51
- help show top-level or group help
52
-
53
- Primary Commands:
54
- floe upload <file>
55
- floe upload status <uploadId>
56
- floe upload cancel <uploadId>
57
- floe upload complete <uploadId>
58
- floe upload wait <uploadId>
59
- floe file metadata <fileId>
60
- floe file manifest <fileId>
61
- floe file stream-url <fileId>
62
- floe ops health
63
- floe config show
64
-
65
- Shortcuts:
66
- floe status <uploadId>
67
- floe cancel <uploadId>
68
- floe metadata <fileId>
69
- floe manifest <fileId>
70
- floe stream-url <fileId>
71
-
72
- Global Options:
73
- --base-url <url> Floe API base URL
74
- --api-key <key> x-api-key auth
75
- --bearer <token> Authorization bearer token
76
- --owner-address <addr> x-owner-address auth hint
77
- --wallet-address <addr> x-wallet-address auth hint
78
- --auth-user <id> x-auth-user auth hint
79
- --json Print JSON only
80
- --include-blob-id Ask Floe to include blobId when supported
81
-
82
- Upload Options:
83
- --chunk-size <bytes> Upload chunk size in bytes
84
- --epochs <n> Walrus epochs for upload create
85
- --parallel <n> Parallel chunk uploads (default: 3)
86
- --no-resume Disable resume-store lookup for uploads
87
- --poll-interval-ms <n> Finalize wait poll interval
88
- --max-wait-ms <n> Finalize max wait time
89
-
90
- Examples:
91
- floe upload ./movie.mp4 --base-url http://127.0.0.1:3001/v1
92
- floe upload wait 123e4567-e89b-12d3-a456-426614174000
93
- floe file metadata 0xabc...
94
- floe ops health
95
- floe config show
96
- `);
159
+ writeLines([
160
+ headline("Floe CLI"),
161
+ "Developer tooling for uploads, file inspection, and operator checks.",
162
+ section("Usage"),
163
+ " floe <group> <command> [args] [options]",
164
+ section("Groups"),
165
+ " upload upload files, resume flows, and finalize sessions",
166
+ " file inspect metadata, manifests, and stream URLs",
167
+ " ops health and deployment checks",
168
+ " config show the effective local CLI configuration",
169
+ " help show top-level or group help",
170
+ section("Primary Commands"),
171
+ " floe upload <file>",
172
+ " floe upload status <uploadId>",
173
+ " floe upload cancel <uploadId>",
174
+ " floe upload complete <uploadId>",
175
+ " floe upload wait <uploadId>",
176
+ " floe file metadata <fileId>",
177
+ " floe file manifest <fileId>",
178
+ " floe file stream-url <fileId>",
179
+ " floe ops health",
180
+ " floe config show",
181
+ " floe config path",
182
+ " floe config set <key> <value>",
183
+ " floe config unset <key>",
184
+ section("Shortcuts"),
185
+ " floe status <uploadId>",
186
+ " floe cancel <uploadId>",
187
+ " floe metadata <fileId>",
188
+ " floe manifest <fileId>",
189
+ " floe stream-url <fileId>",
190
+ section("Global Options"),
191
+ " --base-url <url> Floe API base URL",
192
+ " --api-key <key> x-api-key auth",
193
+ " --bearer <token> Authorization bearer token",
194
+ " --owner-address <addr> x-owner-address auth hint",
195
+ " --wallet-address <addr> x-wallet-address auth hint",
196
+ " --auth-user <id> x-auth-user auth hint",
197
+ " -v, --verbose Show request-stage details",
198
+ " --json Print JSON only",
199
+ " --include-blob-id Ask Floe to include blobId when supported",
200
+ section("Upload Options"),
201
+ " --chunk-size <bytes> Upload chunk size in bytes",
202
+ " --epochs <n> Walrus epochs for upload create",
203
+ " --parallel <n> Parallel chunk uploads (default: 3)",
204
+ " --no-resume Disable resume-store lookup for uploads",
205
+ " --poll-interval-ms <n> Finalize wait poll interval",
206
+ " --max-wait-ms <n> Finalize max wait time",
207
+ section("Examples"),
208
+ " floe upload ./movie.mp4 --base-url http://127.0.0.1:3001/v1",
209
+ " floe upload wait 123e4567-e89b-12d3-a456-426614174000",
210
+ " floe file metadata 0xabc...",
211
+ " floe ops health",
212
+ " floe config show",
213
+ " floe config set base-url https://api.floehq.com/v1",
214
+ ]);
97
215
  }
98
216
  function inferContentType(filePath) {
99
217
  const ext = path.extname(filePath).toLowerCase();
@@ -111,27 +229,83 @@ function inferContentType(filePath) {
111
229
  return "video/x-matroska";
112
230
  return "application/octet-stream";
113
231
  }
114
- function parseIntFlag(value) {
232
+ function parsePositiveIntegerFlag(name, value) {
233
+ if (!value?.trim()) {
234
+ throw new Error(`${name} requires a value`);
235
+ }
236
+ if (!/^\d+$/.test(value.trim())) {
237
+ throw new Error(`${name} must be a positive integer`);
238
+ }
115
239
  const n = Number(value);
116
- if (!Number.isFinite(n) || n <= 0)
117
- return undefined;
118
- return Math.floor(n);
240
+ if (!Number.isSafeInteger(n) || n <= 0) {
241
+ throw new Error(`${name} must be a positive integer`);
242
+ }
243
+ return n;
119
244
  }
120
- function parseArgs(argv) {
121
- const tokens = [];
122
- const options = {
123
- baseUrl: process.env.FLOE_BASE_URL || "http://127.0.0.1:3001/v1",
124
- apiKey: process.env.FLOE_API_KEY,
125
- bearerToken: process.env.FLOE_BEARER_TOKEN,
126
- ownerAddress: process.env.FLOE_OWNER_ADDRESS,
127
- authUser: process.env.FLOE_AUTH_USER,
128
- walletAddress: process.env.FLOE_WALLET_ADDRESS,
245
+ function defaultOptions() {
246
+ return {
247
+ baseUrl: "http://127.0.0.1:3001/v1",
129
248
  json: false,
249
+ verbose: false,
130
250
  parallel: 3,
131
251
  };
252
+ }
253
+ function getConfigPath() {
254
+ const root = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), ".config");
255
+ return path.join(root, "floe", "config.json");
256
+ }
257
+ async function readStoredConfig() {
258
+ try {
259
+ const raw = await fs.readFile(getConfigPath(), "utf8");
260
+ const parsed = JSON.parse(raw);
261
+ return parsed && typeof parsed === "object" ? parsed : {};
262
+ }
263
+ catch (error) {
264
+ const code = error.code;
265
+ if (code === "ENOENT")
266
+ return {};
267
+ throw error;
268
+ }
269
+ }
270
+ async function writeStoredConfig(config) {
271
+ const configPath = getConfigPath();
272
+ await fs.mkdir(path.dirname(configPath), { recursive: true });
273
+ await fs.writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
274
+ }
275
+ function applyStoredConfig(options, config) {
276
+ if (config.baseUrl)
277
+ options.baseUrl = config.baseUrl;
278
+ if (config.apiKey)
279
+ options.apiKey = config.apiKey;
280
+ if (config.bearerToken)
281
+ options.bearerToken = config.bearerToken;
282
+ if (config.ownerAddress)
283
+ options.ownerAddress = config.ownerAddress;
284
+ if (config.authUser)
285
+ options.authUser = config.authUser;
286
+ if (config.walletAddress)
287
+ options.walletAddress = config.walletAddress;
288
+ }
289
+ function applyEnvConfig(options) {
290
+ if (process.env.FLOE_BASE_URL)
291
+ options.baseUrl = process.env.FLOE_BASE_URL;
292
+ if (process.env.FLOE_API_KEY)
293
+ options.apiKey = process.env.FLOE_API_KEY;
294
+ if (process.env.FLOE_BEARER_TOKEN)
295
+ options.bearerToken = process.env.FLOE_BEARER_TOKEN;
296
+ if (process.env.FLOE_OWNER_ADDRESS)
297
+ options.ownerAddress = process.env.FLOE_OWNER_ADDRESS;
298
+ if (process.env.FLOE_AUTH_USER)
299
+ options.authUser = process.env.FLOE_AUTH_USER;
300
+ if (process.env.FLOE_WALLET_ADDRESS)
301
+ options.walletAddress = process.env.FLOE_WALLET_ADDRESS;
302
+ }
303
+ function parseArgState(argv) {
304
+ const tokens = [];
305
+ const overrides = {};
132
306
  for (let i = 0; i < argv.length; i += 1) {
133
307
  const arg = argv[i];
134
- if (!arg.startsWith("--")) {
308
+ if (!arg.startsWith("-")) {
135
309
  tokens.push(arg);
136
310
  continue;
137
311
  }
@@ -142,52 +316,59 @@ function parseArgs(argv) {
142
316
  };
143
317
  switch (arg) {
144
318
  case "--base-url":
145
- options.baseUrl = readValue() || options.baseUrl;
319
+ overrides.baseUrl = readValue() || defaultOptions().baseUrl;
146
320
  break;
147
321
  case "--api-key":
148
- options.apiKey = readValue() || "";
322
+ overrides.apiKey = readValue() || "";
149
323
  break;
150
324
  case "--bearer":
151
- options.bearerToken = readValue() || "";
325
+ overrides.bearerToken = readValue() || "";
152
326
  break;
153
327
  case "--owner-address":
154
- options.ownerAddress = readValue() || "";
328
+ overrides.ownerAddress = readValue() || "";
155
329
  break;
156
330
  case "--wallet-address":
157
- options.walletAddress = readValue() || "";
331
+ overrides.walletAddress = readValue() || "";
158
332
  break;
159
333
  case "--auth-user":
160
- options.authUser = readValue() || "";
334
+ overrides.authUser = readValue() || "";
161
335
  break;
162
336
  case "--chunk-size":
163
- options.chunkSize = parseIntFlag(readValue());
337
+ overrides.chunkSize = parsePositiveIntegerFlag("--chunk-size", readValue());
164
338
  break;
165
339
  case "--epochs":
166
- options.epochs = parseIntFlag(readValue());
340
+ overrides.epochs = parsePositiveIntegerFlag("--epochs", readValue());
167
341
  break;
168
342
  case "--parallel":
169
- options.parallel = parseIntFlag(readValue());
343
+ overrides.parallel = parsePositiveIntegerFlag("--parallel", readValue());
170
344
  break;
171
345
  case "--poll-interval-ms":
172
- options.pollIntervalMs = parseIntFlag(readValue());
346
+ overrides.pollIntervalMs = parsePositiveIntegerFlag("--poll-interval-ms", readValue());
173
347
  break;
174
348
  case "--max-wait-ms":
175
- options.maxWaitMs = parseIntFlag(readValue());
349
+ overrides.maxWaitMs = parsePositiveIntegerFlag("--max-wait-ms", readValue());
176
350
  break;
177
351
  case "--include-blob-id":
178
- options.includeBlobId = true;
352
+ overrides.includeBlobId = true;
179
353
  break;
180
354
  case "--no-resume":
181
- options.noResume = true;
355
+ overrides.noResume = true;
182
356
  break;
183
357
  case "--json":
184
- options.json = true;
358
+ overrides.json = true;
359
+ break;
360
+ case "--verbose":
361
+ case "-v":
362
+ overrides.verbose = true;
185
363
  break;
186
364
  default:
187
365
  break;
188
366
  }
189
367
  }
190
- const [first, second, third] = tokens.map((v) => v.toLowerCase());
368
+ return { tokens, overrides };
369
+ }
370
+ function resolveCommand(tokens) {
371
+ const [first, second] = tokens.map((v) => v.toLowerCase());
191
372
  let command;
192
373
  switch (first ?? "help") {
193
374
  case "upload":
@@ -233,7 +414,26 @@ function parseArgs(argv) {
233
414
  command = second === "health" ? { kind: "ops.health" } : { kind: "help", topic: "ops" };
234
415
  break;
235
416
  case "config":
236
- command = second === "show" ? { kind: "config.show" } : { kind: "help" };
417
+ switch (second) {
418
+ case "show":
419
+ command = { kind: "config.show" };
420
+ break;
421
+ case "path":
422
+ command = { kind: "config.path" };
423
+ break;
424
+ case "set":
425
+ command = { kind: "config.set", key: tokens[2], value: tokens[3] };
426
+ break;
427
+ case "unset":
428
+ command = { kind: "config.unset", key: tokens[2] };
429
+ break;
430
+ case "help":
431
+ command = { kind: "help", topic: "config" };
432
+ break;
433
+ default:
434
+ command = { kind: "help", topic: "config" };
435
+ break;
436
+ }
237
437
  break;
238
438
  case "status":
239
439
  command = { kind: "upload.status", uploadId: tokens[1] };
@@ -257,11 +457,209 @@ function parseArgs(argv) {
257
457
  command = { kind: "help" };
258
458
  break;
259
459
  }
260
- return { command, options };
460
+ return command;
461
+ }
462
+ async function parseArgs(argv) {
463
+ const { tokens } = parseArgState(argv);
464
+ const options = defaultOptions();
465
+ applyStoredConfig(options, await readStoredConfig());
466
+ applyEnvConfig(options);
467
+ const { overrides: overrideOptions } = parseArgState(argv);
468
+ Object.assign(options, overrideOptions);
469
+ return { command: resolveCommand(tokens), options };
470
+ }
471
+ function requireConfigKey(key) {
472
+ if (!key)
473
+ throw new Error("config key is required");
474
+ const normalized = key.toLowerCase();
475
+ if (!(normalized in CONFIG_KEY_MAP)) {
476
+ throw new Error(`unsupported config key: ${key}`);
477
+ }
478
+ return normalized;
261
479
  }
262
480
  function printResult(value, json) {
263
- const text = JSON.stringify(value, null, 2);
264
- process.stdout.write(`${text}\n`);
481
+ if (json) {
482
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
483
+ return;
484
+ }
485
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
486
+ }
487
+ function printUploadResult(value, options) {
488
+ if (options.json) {
489
+ printResult(value, true);
490
+ return;
491
+ }
492
+ const lines = [
493
+ headline("Upload Complete"),
494
+ valueLine("status", statusBadge(value.status)),
495
+ valueLine("uploadId", value.uploadId),
496
+ valueLine("fileId", value.fileId),
497
+ valueLine("size", formatBytes(value.sizeBytes)),
498
+ valueLine("chunkSize", formatBytes(value.chunkSize)),
499
+ valueLine("chunks", value.totalChunks),
500
+ ];
501
+ pushOptionalLine(lines, "walrusEndEpoch", value.walrusEndEpoch);
502
+ writeLines(lines);
503
+ }
504
+ function printSimpleActionResult(title, value, options) {
505
+ if (options.json) {
506
+ printResult(value, true);
507
+ return;
508
+ }
509
+ const lines = [headline(title)];
510
+ for (const [key, rawValue] of Object.entries(value)) {
511
+ lines.push(valueLine(key, rawValue));
512
+ }
513
+ writeLines(lines);
514
+ }
515
+ function printUploadStatusResult(value, options) {
516
+ if (options.json) {
517
+ printResult(value, true);
518
+ return;
519
+ }
520
+ const lines = [
521
+ headline("Upload Status"),
522
+ valueLine("status", statusBadge(String(value.status ?? "unknown"))),
523
+ valueLine("uploadId", value.uploadId),
524
+ valueLine("fileId", value.fileId),
525
+ valueLine("uploaded", formatBytes(typeof value.uploadedBytes === "number" ? value.uploadedBytes : null)),
526
+ valueLine("total", formatBytes(typeof value.sizeBytes === "number" ? value.sizeBytes : null)),
527
+ valueLine("chunks", value.totalChunks),
528
+ ];
529
+ pushOptionalLine(lines, "walrusEndEpoch", value.walrusEndEpoch);
530
+ if (options.includeBlobId) {
531
+ pushOptionalLine(lines, "blobId", value.blobId);
532
+ }
533
+ writeLines(lines);
534
+ }
535
+ function printManifestResult(value, options) {
536
+ if (options.json) {
537
+ printResult(value, true);
538
+ return;
539
+ }
540
+ const lines = [
541
+ headline("File Manifest"),
542
+ valueLine("fileId", value.fileId),
543
+ valueLine("manifestVersion", value.manifestVersion),
544
+ valueLine("container", value.container),
545
+ valueLine("tracks", Array.isArray(value.tracks) ? value.tracks.length : value.tracks),
546
+ valueLine("segmentCount", Array.isArray(value.segments) ? value.segments.length : value.segments),
547
+ ];
548
+ pushOptionalLine(lines, "walrusEndEpoch", value.walrusEndEpoch);
549
+ if (options.includeBlobId) {
550
+ pushOptionalLine(lines, "blobId", value.blobId);
551
+ }
552
+ writeLines(lines);
553
+ }
554
+ function printFileMetadataResult(value, options) {
555
+ if (options.json) {
556
+ printResult(value, true);
557
+ return;
558
+ }
559
+ const lines = [
560
+ headline("File Metadata"),
561
+ valueLine("fileId", value.fileId),
562
+ valueLine("mimeType", value.mimeType),
563
+ valueLine("size", formatBytes(typeof value.sizeBytes === "number" ? value.sizeBytes : null)),
564
+ valueLine("owner", value.owner),
565
+ valueLine("createdAt", value.createdAt),
566
+ ];
567
+ pushOptionalLine(lines, "walrusEndEpoch", value.walrusEndEpoch);
568
+ if (options.includeBlobId) {
569
+ pushOptionalLine(lines, "blobId", value.blobId);
570
+ }
571
+ writeLines(lines);
572
+ }
573
+ function printStreamUrlResult(fileId, streamUrl, options) {
574
+ if (options.json) {
575
+ printResult({ fileId, streamUrl }, true);
576
+ return;
577
+ }
578
+ writeLines([
579
+ headline("Stream URL"),
580
+ valueLine("fileId", fileId),
581
+ valueLine("url", streamUrl),
582
+ ]);
583
+ }
584
+ function printHealthResult(value, options) {
585
+ if (options.json) {
586
+ printResult(value, true);
587
+ return;
588
+ }
589
+ const checks = (value.checks ?? {});
590
+ const redis = checks.redis;
591
+ const postgres = checks.postgres;
592
+ const finalizeQueue = checks.finalizeQueue;
593
+ writeLines([
594
+ headline("Deployment Health"),
595
+ valueLine("status", statusBadge(String(value.status ?? "unknown"))),
596
+ valueLine("service", value.service),
597
+ valueLine("role", value.role),
598
+ valueLine("ready", value.ready),
599
+ valueLine("degraded", value.degraded),
600
+ valueLine("timestamp", value.timestamp),
601
+ section("Dependencies"),
602
+ valueLine("redis", redis?.status ?? redis?.ok),
603
+ valueLine("postgres", postgres?.status ?? postgres?.ok),
604
+ valueLine("queueDepth", finalizeQueue?.depth),
605
+ valueLine("queueWorkers", finalizeQueue?.concurrency),
606
+ valueLine("oldestQueued", finalizeQueue?.oldestQueuedAgeMs),
607
+ ]);
608
+ }
609
+ function printConfigResult(value, options) {
610
+ if (options.json) {
611
+ printResult(value, true);
612
+ return;
613
+ }
614
+ writeLines([
615
+ headline("CLI Configuration"),
616
+ valueLine("path", value.path),
617
+ valueLine("baseUrl", value.baseUrl),
618
+ section("Auth"),
619
+ valueLine("apiKey", value.auth.apiKey),
620
+ valueLine("bearer", value.auth.bearerToken),
621
+ valueLine("owner", value.auth.ownerAddress),
622
+ valueLine("authUser", value.auth.authUser),
623
+ valueLine("wallet", value.auth.walletAddress),
624
+ section("Upload"),
625
+ valueLine("chunkSize", value.upload.chunkSize),
626
+ valueLine("epochs", value.upload.epochs),
627
+ valueLine("parallel", value.upload.parallel),
628
+ valueLine("includeBlobId", value.upload.includeBlobId),
629
+ valueLine("resumeDisabled", value.upload.noResume),
630
+ valueLine("pollIntervalMs", value.upload.pollIntervalMs),
631
+ valueLine("maxWaitMs", value.upload.maxWaitMs),
632
+ section("Output"),
633
+ valueLine("json", options.json),
634
+ valueLine("verbose", options.verbose),
635
+ ]);
636
+ }
637
+ async function runConfigPath(options) {
638
+ const configPath = getConfigPath();
639
+ if (options.json) {
640
+ printResult({ path: configPath }, true);
641
+ return;
642
+ }
643
+ writeLines([headline("CLI Config Path"), valueLine("path", configPath)]);
644
+ }
645
+ async function runConfigSet(keyRaw, valueRaw, options) {
646
+ const key = requireConfigKey(keyRaw);
647
+ const value = requireValue(valueRaw, "config value");
648
+ const config = await readStoredConfig();
649
+ config[CONFIG_KEY_MAP[key]] = value;
650
+ await writeStoredConfig(config);
651
+ if (!options.json)
652
+ infoLine(`saved ${key} in ${getConfigPath()}`);
653
+ printSimpleActionResult("Config Updated", { key, value: key.includes("key") || key === "bearer" ? "[configured]" : value, path: getConfigPath() }, options);
654
+ }
655
+ async function runConfigUnset(keyRaw, options) {
656
+ const key = requireConfigKey(keyRaw);
657
+ const config = await readStoredConfig();
658
+ delete config[CONFIG_KEY_MAP[key]];
659
+ await writeStoredConfig(config);
660
+ if (!options.json)
661
+ infoLine(`removed ${key} from ${getConfigPath()}`);
662
+ printSimpleActionResult("Config Updated", { key, removed: true, path: getConfigPath() }, options);
265
663
  }
266
664
  async function readFileAsBlob(filePath, contentType) {
267
665
  const openAsBlob = fs.openAsBlob;
@@ -308,6 +706,8 @@ async function fetchJson(url, options) {
308
706
  headers.set("x-wallet-address", options.walletAddress);
309
707
  headers.set("x-floe-sdk", "@floehq/cli");
310
708
  const response = await fetch(url, { headers });
709
+ verboseLine(options, "request", url);
710
+ verboseLine(options, "auth", headers.get("authorization") ? "bearer" : headers.get("x-api-key") ? "api-key" : "none");
311
711
  const text = await response.text();
312
712
  const data = text ? JSON.parse(text) : null;
313
713
  if (!response.ok) {
@@ -324,6 +724,15 @@ async function runUpload(filePathRaw, options) {
324
724
  const contentType = inferContentType(filePath);
325
725
  const blob = await readFileAsBlob(filePath, contentType);
326
726
  const client = await buildClient(options);
727
+ let progressLineOpen = false;
728
+ if (!options.json) {
729
+ infoLine(`preparing ${path.basename(filePath)} ${formatBytes(stat.size)} ${contentType}`);
730
+ infoLine(`target ${options.baseUrl}`);
731
+ }
732
+ verboseLine(options, "file", filePath);
733
+ verboseLine(options, "resume", options.noResume ? "disabled" : "enabled");
734
+ verboseLine(options, "parallel", options.parallel);
735
+ verboseLine(options, "chunkSize", options.chunkSize ?? "default");
327
736
  const result = await client.uploadBlob(blob, {
328
737
  filename: path.basename(filePath),
329
738
  contentType,
@@ -336,68 +745,99 @@ async function runUpload(filePathRaw, options) {
336
745
  onProgress(progress) {
337
746
  if (options.json)
338
747
  return;
339
- process.stderr.write(`uploaded ${progress.uploadedChunks}/${progress.totalChunks} chunks (${progress.uploadedBytes}/${progress.totalBytes} bytes)\n`);
748
+ progressLineOpen = true;
749
+ const line = [
750
+ paint("uploading", ANSI.bold, ANSI.cyan),
751
+ progressBar(progress.uploadedBytes, progress.totalBytes),
752
+ paint(formatPercent(progress.uploadedBytes, progress.totalBytes), ANSI.bold),
753
+ `${progress.uploadedChunks}/${progress.totalChunks} chunks`,
754
+ `${formatBytes(progress.uploadedBytes)} / ${formatBytes(progress.totalBytes)}`,
755
+ ].join(" ");
756
+ process.stderr.write(`\r\x1b[2K${line}`);
340
757
  },
341
758
  });
342
- printResult(result, options.json);
759
+ if (!options.json && progressLineOpen) {
760
+ process.stderr.write("\r\x1b[2K");
761
+ infoLine("finalizing upload and waiting for readiness");
762
+ }
763
+ printUploadResult(result, options);
343
764
  }
344
765
  async function runUploadStatus(uploadIdRaw, options) {
345
766
  const uploadId = requireValue(uploadIdRaw, "uploadId");
767
+ if (!options.json)
768
+ infoLine(`checking upload ${uploadId}`);
346
769
  const client = await buildClient(options);
347
770
  const result = await client.getUploadStatus(uploadId, {
348
771
  ...(options.includeBlobId ? { query: { includeBlobId: 1 } } : {}),
349
772
  });
350
- printResult(result, options.json);
773
+ printUploadStatusResult(result, options);
351
774
  }
352
775
  async function runUploadCancel(uploadIdRaw, options) {
353
776
  const uploadId = requireValue(uploadIdRaw, "uploadId");
777
+ if (!options.json)
778
+ infoLine(`canceling upload ${uploadId}`);
354
779
  const client = await buildClient(options);
355
780
  const result = await client.cancelUpload(uploadId);
356
- printResult(result, options.json);
781
+ printSimpleActionResult("Upload Canceled", result, options);
357
782
  }
358
783
  async function runUploadComplete(uploadIdRaw, options) {
359
784
  const uploadId = requireValue(uploadIdRaw, "uploadId");
785
+ if (!options.json)
786
+ infoLine(`completing upload ${uploadId}`);
360
787
  const client = await buildClient(options);
361
788
  const result = await client.completeUpload(uploadId, {
362
789
  ...(options.includeBlobId ? { includeBlobId: true } : {}),
363
790
  });
364
- printResult(result, options.json);
791
+ printUploadStatusResult(result, options);
365
792
  }
366
793
  async function runUploadWait(uploadIdRaw, options) {
367
794
  const uploadId = requireValue(uploadIdRaw, "uploadId");
795
+ if (!options.json)
796
+ infoLine(`waiting for upload ${uploadId}`);
797
+ verboseLine(options, "pollIntervalMs", options.pollIntervalMs ?? "default");
798
+ verboseLine(options, "maxWaitMs", options.maxWaitMs ?? "default");
368
799
  const client = await buildClient(options);
369
800
  const result = await client.waitForUploadReady(uploadId, {
370
801
  ...(options.includeBlobId ? { includeBlobId: true } : {}),
371
802
  ...(options.pollIntervalMs ? { pollIntervalMs: options.pollIntervalMs } : {}),
372
803
  ...(options.maxWaitMs ? { maxWaitMs: options.maxWaitMs } : {}),
373
804
  });
374
- printResult(result, options.json);
805
+ printUploadStatusResult(result, options);
375
806
  }
376
807
  async function runFileMetadata(fileIdRaw, options) {
377
808
  const fileId = requireValue(fileIdRaw, "fileId");
809
+ if (!options.json)
810
+ infoLine(`fetching metadata for ${fileId}`);
378
811
  const client = await buildClient(options);
379
812
  const result = await client.getFileMetadata(fileId, {
380
813
  ...(options.includeBlobId ? { includeBlobId: true } : {}),
381
814
  });
382
- printResult(result, options.json);
815
+ printFileMetadataResult(result, options);
383
816
  }
384
817
  async function runFileManifest(fileIdRaw, options) {
385
818
  const fileId = requireValue(fileIdRaw, "fileId");
819
+ if (!options.json)
820
+ infoLine(`fetching manifest for ${fileId}`);
386
821
  const client = await buildClient(options);
387
822
  const result = await client.getFileManifest(fileId);
388
- printResult(result, options.json);
823
+ printManifestResult(result, options);
389
824
  }
390
825
  async function runFileStreamUrl(fileIdRaw, options) {
391
826
  const fileId = requireValue(fileIdRaw, "fileId");
392
827
  const client = await buildClient(options);
393
- printResult({ fileId, streamUrl: client.getFileStreamUrl(fileId) }, options.json);
828
+ if (!options.json)
829
+ infoLine(`building stream URL for ${fileId}`);
830
+ printStreamUrlResult(fileId, client.getFileStreamUrl(fileId), options);
394
831
  }
395
832
  async function runOpsHealth(options) {
833
+ if (!options.json)
834
+ infoLine(`checking deployment health at ${rootApiUrl(options.baseUrl)}/health`);
396
835
  const result = await fetchJson(`${rootApiUrl(options.baseUrl)}/health`, options);
397
- printResult(result, options.json);
836
+ printHealthResult(result, options);
398
837
  }
399
838
  async function runConfigShow(options) {
400
- printResult({
839
+ printConfigResult({
840
+ path: getConfigPath(),
401
841
  baseUrl: options.baseUrl,
402
842
  auth: {
403
843
  apiKey: options.apiKey ? "[configured]" : null,
@@ -415,10 +855,10 @@ async function runConfigShow(options) {
415
855
  pollIntervalMs: options.pollIntervalMs ?? null,
416
856
  maxWaitMs: options.maxWaitMs ?? null,
417
857
  },
418
- }, options.json);
858
+ }, options);
419
859
  }
420
860
  async function main() {
421
- const { command, options } = parseArgs(process.argv.slice(2));
861
+ const { command, options } = await parseArgs(process.argv.slice(2));
422
862
  switch (command.kind) {
423
863
  case "help":
424
864
  printHelp(command.topic);
@@ -453,24 +893,34 @@ async function main() {
453
893
  case "config.show":
454
894
  await runConfigShow(options);
455
895
  return;
896
+ case "config.path":
897
+ await runConfigPath(options);
898
+ return;
899
+ case "config.set":
900
+ await runConfigSet(command.key, command.value, options);
901
+ return;
902
+ case "config.unset":
903
+ await runConfigUnset(command.key, options);
904
+ return;
456
905
  }
457
906
  }
458
907
  main().catch((err) => {
459
908
  if (err instanceof FloeApiError) {
460
- process.stderr.write(`${JSON.stringify({
461
- error: {
462
- message: err.message,
463
- status: err.status,
464
- code: err.code,
465
- retryable: err.retryable,
466
- requestId: err.requestId,
467
- details: err.details,
468
- },
469
- }, null, 2)}\n`);
909
+ process.stderr.write(`${paint("Request Failed", ANSI.bold, ANSI.red)}\n`);
910
+ process.stderr.write(` ${paint("message".padEnd(16), ANSI.dim)} ${err.message}\n`);
911
+ process.stderr.write(` ${paint("status".padEnd(16), ANSI.dim)} ${String(err.status ?? "unknown")}\n`);
912
+ process.stderr.write(` ${paint("code".padEnd(16), ANSI.dim)} ${String(err.code ?? "unknown")}\n`);
913
+ process.stderr.write(` ${paint("retryable".padEnd(16), ANSI.dim)} ${String(Boolean(err.retryable))}\n`);
914
+ if (err.requestId) {
915
+ process.stderr.write(` ${paint("requestId".padEnd(16), ANSI.dim)} ${err.requestId}\n`);
916
+ }
917
+ if (err.details) {
918
+ process.stderr.write(`${section("Details")}\n${JSON.stringify(err.details, null, 2)}\n`);
919
+ }
470
920
  process.exitCode = 1;
471
921
  return;
472
922
  }
473
- process.stderr.write(`${String(err instanceof Error ? err.message : err)}\n`);
923
+ process.stderr.write(`${paint("Error", ANSI.bold, ANSI.red)} ${String(err instanceof Error ? err.message : err)}\n`);
474
924
  process.exitCode = 1;
475
925
  });
476
926
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@floehq/cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Command-line interface for the Floe API",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/tejas0111/floe.git",
8
+ "directory": "apps/cli"
9
+ },
10
+ "homepage": "https://github.com/tejas0111/floe/tree/main/apps/cli",
11
+ "bugs": {
12
+ "url": "https://github.com/tejas0111/floe/issues"
13
+ },
5
14
  "type": "module",
6
15
  "bin": {
7
16
  "floe": "./dist/cli.js"