@agentpowers/cli 0.5.2 → 0.6.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.
Files changed (43) hide show
  1. package/dist/banner.d.ts +2 -0
  2. package/dist/banner.js +33 -0
  3. package/dist/banner.js.map +1 -0
  4. package/dist/cli.js +6 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/detail.js +66 -33
  7. package/dist/commands/detail.js.map +1 -1
  8. package/dist/commands/install.js +26 -27
  9. package/dist/commands/install.js.map +1 -1
  10. package/dist/commands/login.js +10 -7
  11. package/dist/commands/login.js.map +1 -1
  12. package/dist/commands/logout.js +2 -1
  13. package/dist/commands/logout.js.map +1 -1
  14. package/dist/commands/profile.js +25 -16
  15. package/dist/commands/profile.js.map +1 -1
  16. package/dist/commands/prune.js +9 -6
  17. package/dist/commands/prune.js.map +1 -1
  18. package/dist/commands/publish.js +28 -19
  19. package/dist/commands/publish.js.map +1 -1
  20. package/dist/commands/republish.js +26 -18
  21. package/dist/commands/republish.js.map +1 -1
  22. package/dist/commands/scan.js +38 -28
  23. package/dist/commands/scan.js.map +1 -1
  24. package/dist/commands/search.js +5 -4
  25. package/dist/commands/search.js.map +1 -1
  26. package/dist/commands/setup.js +14 -12
  27. package/dist/commands/setup.js.map +1 -1
  28. package/dist/commands/status.js +31 -33
  29. package/dist/commands/status.js.map +1 -1
  30. package/dist/commands/uninstall.js +8 -4
  31. package/dist/commands/uninstall.js.map +1 -1
  32. package/dist/commands/unpublish.js +16 -11
  33. package/dist/commands/unpublish.js.map +1 -1
  34. package/dist/commands/update.js +50 -36
  35. package/dist/commands/update.js.map +1 -1
  36. package/dist/commands/verify.js +5 -5
  37. package/dist/commands/verify.js.map +1 -1
  38. package/dist/commands/whoami.js +11 -6
  39. package/dist/commands/whoami.js.map +1 -1
  40. package/dist/formatters.d.ts +26 -1
  41. package/dist/formatters.js +207 -37
  42. package/dist/formatters.js.map +1 -1
  43. package/package.json +2 -1
@@ -1,8 +1,10 @@
1
1
  /** Update command — check for and install updates to installed skills. */
2
2
  import { hostname } from "node:os";
3
+ import chalk from "chalk";
3
4
  import { loadAuthToken } from "../auth.js";
4
5
  import { apiGet, recordInstallation, APIError, NetworkError, } from "../api-client.js";
5
6
  import { downloadAndExtract, getInstallDir, validateSlug } from "../installer.js";
7
+ import { formatError, writeStatus, clearStatus, renderTable } from "../formatters.js";
6
8
  import { loadPins, hashDirectory, isDirectory } from "@agentpowers/core";
7
9
  /** Normalize pin.type to "skill" | "agent". Garbage values default to "skill". */
8
10
  function normalizePinType(raw) {
@@ -17,7 +19,7 @@ async function updateSingle(slug, force) {
17
19
  const pins = loadPins();
18
20
  const pin = pins[slug];
19
21
  if (!pin) {
20
- console.error(`'${slug}' is not installed. Run \`npx @agentpowers/cli install ${slug}\` first.`);
22
+ console.error(formatError(`'${slug}' is not installed. Run \`npx @agentpowers/cli install ${slug}\` first.`));
21
23
  process.exitCode = 1;
22
24
  return;
23
25
  }
@@ -25,7 +27,7 @@ async function updateSingle(slug, force) {
25
27
  const installDir = getInstallDir(slug, type);
26
28
  // Ghost pin — directory doesn't exist on disk
27
29
  if (!isDirectory(installDir)) {
28
- console.error(`'${slug}' has a pin but is not installed on disk. Run \`npx @agentpowers/cli prune\` to clean up, or reinstall it.`);
30
+ console.error(formatError(`'${slug}' has a pin but is not installed on disk. Run \`npx @agentpowers/cli prune\` to clean up, or reinstall it.`));
29
31
  process.exitCode = 1;
30
32
  return;
31
33
  }
@@ -42,20 +44,23 @@ async function updateSingle(slug, force) {
42
44
  // Fetch latest version from API
43
45
  let detail;
44
46
  try {
47
+ writeStatus(`Checking ${slug}...`);
45
48
  const params = {};
46
49
  if (pin.source !== "agentpowers")
47
50
  params.source = pin.source;
48
51
  detail = await apiGet(`/v1/detail/${encodeURIComponent(slug)}`, params);
52
+ clearStatus();
49
53
  }
50
54
  catch (err) {
55
+ clearStatus();
51
56
  if (err instanceof APIError && err.statusCode === 404) {
52
- console.error(`'${slug}' not found on server (may have been unpublished).`);
57
+ console.error(formatError(`'${slug}' not found on server (may have been unpublished).`));
53
58
  }
54
59
  else if (err instanceof NetworkError) {
55
- console.error(`${slug}: ${err.message}`);
60
+ console.error(formatError(`${slug}: ${err.message}`));
56
61
  }
57
62
  else if (err instanceof Error) {
58
- console.error(`${slug}: ${err.message}`);
63
+ console.error(formatError(`${slug}: ${err.message}`));
59
64
  }
60
65
  process.exitCode = 1;
61
66
  return;
@@ -64,31 +69,32 @@ async function updateSingle(slug, force) {
64
69
  // Compare versions
65
70
  if (!latestVersion || latestVersion === pin.version) {
66
71
  if (isEdited && !force) {
67
- console.log(`${slug} is up to date (v${pin.version ?? "unknown"}) but locally edited.`);
72
+ console.log(`${chalk.cyan(slug)} is up to date (v${pin.version ?? "unknown"}) but ${chalk.yellow("locally edited")}.`);
68
73
  return;
69
74
  }
70
- console.log(`${slug} is already up to date (v${pin.version ?? "unknown"}).`);
75
+ console.log(`${chalk.cyan(slug)} is already up to date (v${pin.version ?? "unknown"}).`);
71
76
  return;
72
77
  }
73
78
  // Update available — check for local edits
74
79
  if (isEdited && !force) {
75
- console.log(`${slug}: locally edited ${pin.version ?? "unknown"} -> ${latestVersion} available but skipped.`);
76
- console.log("Use --force to update anyway (local changes will be overwritten).");
80
+ console.log(`${chalk.cyan(slug)}: ${chalk.yellow("locally edited")} -- ${pin.version ?? "unknown"} -> ${latestVersion} available but skipped.`);
81
+ console.log(chalk.dim("Use --force to update anyway (local changes will be overwritten)."));
77
82
  return;
78
83
  }
79
84
  // Download and install
80
85
  try {
81
86
  const label = isEdited ? "Force updating" : "Updating";
82
- console.log(` ${label} ${slug}: ${pin.version ?? "unknown"} -> ${latestVersion}...`);
87
+ console.log(` ${label} ${chalk.cyan(slug)}: ${pin.version ?? "unknown"} -> ${latestVersion}...`);
83
88
  const downloadData = await apiGet(`/v1/skills/${encodeURIComponent(slug)}/download`, undefined, token);
84
89
  await downloadAndExtract(downloadData.url, slug, type, pin.source, latestVersion, detail.security_status ?? "pass");
85
- console.log(` [ok] ${slug} updated to ${latestVersion}.`);
90
+ console.log(` ${chalk.green("[ok]")} ${chalk.cyan(slug)} updated to ${latestVersion}.`);
86
91
  // Record installation (fire-and-forget)
87
92
  void recordInstallation(slug, "cli", pin.source, hostname(), token);
88
93
  }
89
94
  catch (err) {
95
+ clearStatus();
90
96
  if (err instanceof Error) {
91
- console.error(` [!] ${slug}: Update failed ${err.message}`);
97
+ console.error(` ${chalk.red("[!]")} ${chalk.cyan(slug)}: Update failed -- ${err.message}`);
92
98
  }
93
99
  process.exitCode = 1;
94
100
  }
@@ -98,7 +104,7 @@ export async function updateCommand(slug, options) {
98
104
  // Single-slug mode
99
105
  if (slug) {
100
106
  if (!validateSlug(slug)) {
101
- console.error(`Error: Invalid slug "${slug}". Slugs must be lowercase alphanumeric with hyphens only.`);
107
+ console.error(formatError(`Invalid slug "${slug}". Slugs must be lowercase alphanumeric with hyphens only.`));
102
108
  process.exitCode = 1;
103
109
  return;
104
110
  }
@@ -118,9 +124,10 @@ export async function updateCommand(slug, options) {
118
124
  let skipped = 0;
119
125
  let forced = 0;
120
126
  let errored = 0;
121
- // Detect ghost pins — entries whose install directory no longer exists on disk.
122
- // These are harmless but noisy; skip them and suggest `prune` to clean up.
127
+ // Detect ghost pins
123
128
  const ghostSlugs = [];
129
+ const summaryRows = [];
130
+ writeStatus("Checking for updates...");
124
131
  for (const pinSlug of slugs) {
125
132
  // Skip pins with invalid slugs (path traversal protection)
126
133
  if (!validateSlug(pinSlug)) {
@@ -155,13 +162,10 @@ export async function updateCommand(slug, options) {
155
162
  catch (err) {
156
163
  errored++;
157
164
  if (err instanceof APIError && err.statusCode === 404) {
158
- console.error(` [!] ${pinSlug}: Not found on server (may have been unpublished).`);
159
- }
160
- else if (err instanceof NetworkError) {
161
- console.error(` [!] ${pinSlug}: ${err.message}`);
165
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", "-", chalk.red("Not found")]);
162
166
  }
163
167
  else if (err instanceof Error) {
164
- console.error(` [!] ${pinSlug}: ${err.message}`);
168
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", "-", chalk.red("Error")]);
165
169
  }
166
170
  continue;
167
171
  }
@@ -169,56 +173,66 @@ export async function updateCommand(slug, options) {
169
173
  // Compare versions
170
174
  if (!latestVersion || latestVersion === pin.version) {
171
175
  current++;
176
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", latestVersion ?? "-", chalk.dim("Up to date")]);
172
177
  continue;
173
178
  }
174
179
  // Update available
175
180
  if (isEdited && !force) {
176
181
  skipped++;
177
- console.log(` [skip] ${pinSlug}: locally edited ${pin.version ?? "unknown"} -> ${latestVersion} available but skipped.`);
182
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", latestVersion, chalk.yellow("Edited (skipped)")]);
178
183
  continue;
179
184
  }
180
185
  // Download and install
181
186
  try {
182
- const label = isEdited ? "Force updating" : "Updating";
183
- console.log(` ${label} ${pinSlug}: ${pin.version ?? "unknown"} -> ${latestVersion}...`);
187
+ writeStatus(`Updating ${pinSlug}...`);
184
188
  const downloadData = await apiGet(`/v1/skills/${encodeURIComponent(pinSlug)}/download`, undefined, token);
185
189
  await downloadAndExtract(downloadData.url, pinSlug, type, pin.source, latestVersion, detail.security_status ?? "pass");
186
190
  if (isEdited) {
187
191
  forced++;
188
- console.log(` [ok] ${pinSlug} force-updated to ${latestVersion}.`);
192
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", latestVersion, chalk.green("Force-updated")]);
189
193
  }
190
194
  else {
191
195
  updated++;
192
- console.log(` [ok] ${pinSlug} updated to ${latestVersion}.`);
196
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", latestVersion, chalk.green("Updated")]);
193
197
  }
194
198
  // Record installation (fire-and-forget)
195
199
  void recordInstallation(pinSlug, "cli", pin.source, hostname(), token);
196
200
  }
197
201
  catch (err) {
198
202
  errored++;
199
- if (err instanceof Error) {
200
- console.error(` [!] ${pinSlug}: Update failed — ${err.message}`);
201
- }
203
+ summaryRows.push([pinSlug, pin.source || "unknown", pin.version ?? "-", "-", chalk.red("Failed")]);
202
204
  }
203
205
  }
204
- // Summary
206
+ clearStatus();
207
+ // Summary table
208
+ if (summaryRows.length > 0) {
209
+ const columns = [
210
+ { header: "Slug", style: (v) => chalk.cyan(v) },
211
+ { header: "Source", style: (v) => chalk.yellow(v) },
212
+ { header: "Current" },
213
+ { header: "Latest" },
214
+ { header: "Status" },
215
+ ];
216
+ console.log(renderTable(columns, summaryRows, "Update Summary"));
217
+ }
218
+ // Text summary
205
219
  console.log("");
206
220
  const parts = [];
207
221
  if (updated > 0)
208
- parts.push(`${updated} updated`);
222
+ parts.push(chalk.green(`${updated} updated`));
209
223
  if (forced > 0)
210
- parts.push(`${forced} force-updated`);
224
+ parts.push(chalk.green(`${forced} force-updated`));
211
225
  if (current > 0)
212
- parts.push(`${current} already current`);
226
+ parts.push(chalk.dim(`${current} already current`));
213
227
  if (skipped > 0)
214
- parts.push(`${skipped} skipped (locally edited)`);
228
+ parts.push(chalk.yellow(`${skipped} skipped (locally edited)`));
215
229
  if (errored > 0)
216
- parts.push(`${errored} failed`);
230
+ parts.push(chalk.red(`${errored} failed`));
217
231
  if (ghostSlugs.length > 0)
218
- parts.push(`${ghostSlugs.length} stale (not on disk)`);
232
+ parts.push(chalk.dim(`${ghostSlugs.length} stale (not on disk)`));
219
233
  console.log(parts.join(", ") + ".");
220
234
  if (ghostSlugs.length > 0) {
221
- console.log(`\nRun \`npx @agentpowers/cli prune\` to remove ${ghostSlugs.length} stale pin(s) from the registry.`);
235
+ console.log(chalk.dim(`\nRun \`npx @agentpowers/cli prune\` to remove ${ghostSlugs.length} stale pin(s) from the registry.`));
222
236
  }
223
237
  }
224
238
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /** Verify command — check installed skills against content hash pins. */
2
2
  import { join } from "node:path";
3
+ import chalk from "chalk";
3
4
  import { loadPins, hashDirectory, isDirectory, SKILLS_DIR, } from "@agentpowers/core";
4
5
  export async function verifyCommand() {
5
6
  const pins = loadPins();
@@ -12,25 +13,24 @@ export async function verifyCommand() {
12
13
  let hasFailure = false;
13
14
  for (const slug of slugs.sort()) {
14
15
  const pin = pins[slug];
15
- const type = pin.type || "skill";
16
16
  const source = pin.source || "unknown";
17
17
  // Determine install directory
18
18
  const installDir = join(SKILLS_DIR, slug);
19
19
  if (!pin.content_hash) {
20
- console.log(` SKIP ${slug} (${source}) no content hash stored`);
20
+ console.log(` ${chalk.yellow("SKIP")} ${chalk.cyan(slug)} (${source}) -- no content hash stored`);
21
21
  continue;
22
22
  }
23
23
  if (!isDirectory(installDir)) {
24
- console.log(` MISSING ${slug} (${source}) not found on disk`);
24
+ console.log(` ${chalk.red("MISSING")} ${chalk.cyan(slug)} (${source}) -- not found on disk`);
25
25
  hasFailure = true;
26
26
  continue;
27
27
  }
28
28
  const currentHash = hashDirectory(installDir);
29
29
  if (currentHash === pin.content_hash) {
30
- console.log(` OK ${slug} (${source})`);
30
+ console.log(` ${chalk.green("OK")} ${chalk.cyan(slug)} (${source})`);
31
31
  }
32
32
  else {
33
- console.log(` FAIL ${slug} (${source}) hash mismatch`);
33
+ console.log(` ${chalk.red("FAIL")} ${chalk.cyan(slug)} (${source}) -- hash mismatch`);
34
34
  hasFailure = true;
35
35
  }
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC;QAEvC,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,MAAM,4BAA4B,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,MAAM,uBAAuB,CAAC,CAAC;YACjE,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,MAAM,mBAAmB,CAAC,CAAC;YAC7D,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC;QAEvC,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,6BAA6B,CAAC,CAAC;YACtG,SAAS;QACX,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,wBAAwB,CAAC,CAAC;YAC9F,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,oBAAoB,CAAC,CAAC;YAC1F,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,31 +1,36 @@
1
1
  /** Whoami command — show current authenticated user info. */
2
+ import chalk from "chalk";
2
3
  import { loadAuthToken } from "../auth.js";
3
4
  import { apiGet, APIError, formatAPIError, NetworkError } from "../api-client.js";
5
+ import { formatError, writeStatus, clearStatus } from "../formatters.js";
4
6
  export async function whoamiCommand() {
5
7
  const token = loadAuthToken();
6
8
  if (!token) {
7
- console.error("Not logged in. Run `npx @agentpowers/cli login` first.");
9
+ console.error(formatError("Not logged in. Run `npx @agentpowers/cli login` first."));
8
10
  process.exitCode = 1;
9
11
  return;
10
12
  }
11
13
  try {
14
+ writeStatus("Checking...");
12
15
  const me = await apiGet("/v1/auth/me", undefined, token);
13
- console.log(`Email: ${me.email}`);
16
+ clearStatus();
17
+ console.log(`${chalk.bold("Email:")} ${me.email}`);
14
18
  if (me.name) {
15
- console.log(`Name: ${me.name}`);
19
+ console.log(`${chalk.bold("Name:")} ${me.name}`);
16
20
  }
17
21
  }
18
22
  catch (err) {
23
+ clearStatus();
19
24
  if (err instanceof APIError && err.statusCode === 401) {
20
- console.error("Not logged in. Run `npx @agentpowers/cli login` first.");
25
+ console.error(formatError("Not logged in. Run `npx @agentpowers/cli login` first."));
21
26
  process.exitCode = 1;
22
27
  }
23
28
  else if (err instanceof APIError) {
24
- console.error(`Error: ${formatAPIError(err)}`);
29
+ console.error(formatError(formatAPIError(err)));
25
30
  process.exitCode = 1;
26
31
  }
27
32
  else if (err instanceof NetworkError) {
28
- console.error(`Error: ${err.message}`);
33
+ console.error(formatError(err.message));
29
34
  process.exitCode = 1;
30
35
  }
31
36
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOlF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAa,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,UAAU,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAOzE,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,MAAM,CAAa,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACrE,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,wDAAwD,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,30 @@
1
- /** Terminal output formatters for CLI display. */
1
+ /** Terminal output formatters for CLI display — Rich-style colored output. */
2
2
  import type { SectionedSearchResponse } from "./types.js";
3
+ declare const teal: import("chalk").ChalkInstance;
4
+ export { teal };
3
5
  export declare function formatPrice(priceCents: number): string;
6
+ /** Format security status with color (for terminal display). */
4
7
  export declare function formatSecurityStatus(status: string): string;
8
+ /** Format security status without color (for plain text / tests). */
9
+ export declare function formatSecurityStatusPlain(status: string): string;
10
+ export declare function formatSeverity(severity: string): string;
11
+ export declare function formatInstalled(state: string | null): string;
12
+ export interface TableColumn {
13
+ header: string;
14
+ width?: number;
15
+ align?: "left" | "right";
16
+ style?: (val: string) => string;
17
+ }
18
+ export declare function stripAnsi(str: string): string;
19
+ /** Sanitize a string for safe terminal display (removes newlines, control chars). */
20
+ export declare function sanitizeForTerminal(str: string): string;
21
+ export declare function renderTable(columns: TableColumn[], rows: string[][], title?: string): string;
22
+ export declare function renderPanel(content: string, title?: string, borderColor?: "cyan" | "green" | "yellow" | "red"): string;
23
+ /** Write a status message to stderr (same line, overwritten). */
24
+ export declare function writeStatus(message: string): void;
25
+ export declare function clearStatus(): void;
26
+ export declare function formatError(message: string): string;
27
+ export declare function formatSuccess(message: string): string;
28
+ export declare function formatWarning(message: string): string;
29
+ export declare function formatDim(message: string): string;
5
30
  export declare function formatSearchResults(data: SectionedSearchResponse): string;