@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
@@ -0,0 +1,2 @@
1
+ /** AgentPowers CLI banner — brand mark and version display. */
2
+ export declare function printBanner(): void;
package/dist/banner.js ADDED
@@ -0,0 +1,33 @@
1
+ /** AgentPowers CLI banner — brand mark and version display. */
2
+ import { teal } from "./formatters.js";
3
+ import chalk from "chalk";
4
+ import { readFileSync } from "node:fs";
5
+ import { join, dirname } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ function getVersion() {
8
+ try {
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf-8"));
11
+ return pkg.version || "0.1.0";
12
+ }
13
+ catch {
14
+ return "0.1.0";
15
+ }
16
+ }
17
+ export function printBanner() {
18
+ // Only show banner on interactive terminals, not when piped
19
+ if (!process.stdout.isTTY)
20
+ return;
21
+ const ver = getVersion();
22
+ console.log();
23
+ console.log(` ${teal(" ████")}`);
24
+ console.log(` ${teal(" ████")} ${chalk.bold("AgentPowers")} ${chalk.dim(`v${ver}`)}`);
25
+ console.log(` ${teal(" ████")} ${chalk.dim("Premium Claude skills & agents")}`);
26
+ console.log(` ${teal("█")} ${teal("████")} ${chalk.dim("agentpowers.ai")}`);
27
+ console.log(` ${teal("███")} ${teal("████")}`);
28
+ console.log(` ${teal(" ██████")}`);
29
+ console.log(` ${teal(" ████")}`);
30
+ console.log(` ${teal(" ██")}`);
31
+ console.log();
32
+ }
33
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAC7D,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,4DAA4D;IAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAElC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IAEzB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CACrF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,YAAY,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAC9E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
package/dist/cli.js CHANGED
@@ -4,6 +4,7 @@ import { readFileSync } from "node:fs";
4
4
  import { join, dirname } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { Command } from "commander";
7
+ import { printBanner } from "./banner.js";
7
8
  import { searchCommand } from "./commands/search.js";
8
9
  import { installCommand } from "./commands/install.js";
9
10
  import { loginCommand } from "./commands/login.js";
@@ -35,7 +36,11 @@ const program = new Command();
35
36
  program
36
37
  .name("agentpowers")
37
38
  .description("Search, install, and manage Claude Code skills from the AgentPowers marketplace.")
38
- .version(getVersion());
39
+ .version(getVersion())
40
+ .hook("preAction", () => {
41
+ // Show banner before any command runs
42
+ printBanner();
43
+ });
39
44
  program
40
45
  .command("search <query>")
41
46
  .description("Search for skills in the marketplace")
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":";AAEA,wEAAwE;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,OAAO,CAAC,UAAU,EAAE,CAAC;KACrB,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IACtB,sCAAsC;IACtC,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;KACzD,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;IACvC,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;KAC7D,MAAM,CAAC,UAAU,EAAE,wCAAwC,CAAC;KAC5D,MAAM,CAAC,cAAc,EAAE,mDAAmD,EAAE,aAAa,CAAC;KAC1F,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,MAAM,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,aAAa,EAAE,6CAA6C,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAO,EAAE,EAAE;IAClD,MAAM,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,OAAO,EAAE,mCAAmC,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,uBAAuB,EAAE,oDAAoD,CAAC;KACrF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,OAAO,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;KACtD,MAAM,CAAC,aAAa,EAAE,gCAAgC,EAAE,GAAG,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,aAAa,CAAC;KACtE,MAAM,CAAC,eAAe,EAAE,mCAAmC,EAAE,OAAO,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACxD,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,eAAe,EAAE,sDAAsD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /** Detail command — show full skill metadata. */
2
+ import chalk from "chalk";
2
3
  import { apiGet, APIError, formatAPIError, NetworkError } from "../api-client.js";
3
- import { formatPrice, formatSecurityStatus } from "../formatters.js";
4
+ import { formatPrice, formatSecurityStatus, formatSeverity, formatError, renderPanel, } from "../formatters.js";
4
5
  import { validateSlug } from "../installer.js";
5
6
  export async function detailCommand(slug, options = {}) {
6
7
  if (!validateSlug(slug)) {
7
- console.error(`Error: Invalid slug "${slug}". Slugs must be lowercase alphanumeric with hyphens only.`);
8
+ console.error(formatError(`Invalid slug "${slug}". Slugs must be lowercase alphanumeric with hyphens only.`));
8
9
  process.exitCode = 1;
9
10
  return;
10
11
  }
@@ -13,65 +14,97 @@ export async function detailCommand(slug, options = {}) {
13
14
  if (options.source)
14
15
  params.source = options.source;
15
16
  const detail = await apiGet(`/v1/detail/${encodeURIComponent(slug)}`, params);
16
- // Header
17
- const title = detail.title || slug;
18
- console.log("");
19
- console.log(` ${title}`);
20
- console.log(` ${"─".repeat(Math.min(title.length, 60))}`);
21
- console.log("");
22
- // Metadata
17
+ // Build panel content
18
+ const lines = [];
19
+ const na = "--";
20
+ // Row 1: Author, Version, Category, Type, Source
23
21
  const author = detail.author_display_name ||
24
22
  detail.author_github ||
25
23
  "Unknown";
26
- console.log(` Author: ${author}`);
27
- console.log(` Version: ${detail.version || "-"}`);
28
- if (detail.category)
29
- console.log(` Category: ${detail.category}`);
30
- console.log(` Type: ${detail.type || "skill"}`);
31
- console.log(` Source: ${detail.source || "agentpowers"}`);
32
- console.log(` Security: ${formatSecurityStatus(detail.security_status || "pending")}`);
33
- console.log(` Price: ${formatPrice(detail.price_cents || 0)}`);
34
- console.log("");
24
+ const version = detail.version || na;
25
+ const category = detail.category || na;
26
+ const skillType = detail.type || "skill";
27
+ const src = detail.source || "agentpowers";
28
+ lines.push(`${chalk.bold("Author:")} ${author} ` +
29
+ `${chalk.bold("Version:")} ${version} ` +
30
+ `${chalk.bold("Category:")} ${category} ` +
31
+ `${chalk.bold("Type:")} ${skillType} ` +
32
+ `${chalk.bold("Source:")} ${src}`);
33
+ // Row 2: Security, Price
34
+ const security = detail.security_status || detail.ap_security_status;
35
+ lines.push(`${chalk.bold("Security:")} ${security ? formatSecurityStatus(security) : "not scanned"} ` +
36
+ `${chalk.bold("Price:")} ${formatPrice(detail.price_cents || 0)}`);
37
+ // Expanded security details
38
+ const secLower = (security || "").toLowerCase();
39
+ if (secLower === "warn" || secLower === "block") {
40
+ const score = detail.security_score ?? detail.ap_security_score;
41
+ if (score != null) {
42
+ const color = secLower === "warn" ? chalk.yellow : chalk.red;
43
+ lines.push(` ${color(`Security Score: ${score}/10`)}`);
44
+ }
45
+ const findings = (detail.security_findings ?? []);
46
+ if (findings.length > 0) {
47
+ const color = secLower === "warn" ? chalk.yellow : chalk.red;
48
+ lines.push(` ${color(`Findings (${findings.length}):`)}`);
49
+ for (const finding of findings) {
50
+ const sev = finding.severity || "INFO";
51
+ const detailText = finding.detail || finding.description || "No detail";
52
+ lines.push(` ${formatSeverity(sev)}: ${detailText}`);
53
+ }
54
+ }
55
+ else if (secLower === "warn") {
56
+ lines.push(chalk.yellow(" This skill has security warnings. Use --scan for full details."));
57
+ }
58
+ else {
59
+ lines.push(chalk.red(" This skill is blocked due to security issues. Use --scan for full details."));
60
+ }
61
+ }
35
62
  // Description
36
63
  const desc = detail.long_description || detail.description;
37
64
  if (desc) {
38
- console.log(` ${desc}`);
39
- console.log("");
65
+ lines.push("");
66
+ lines.push(desc);
67
+ }
68
+ // Rating
69
+ if (detail.rating_average != null && detail.rating_count > 0) {
70
+ const full = Math.max(0, Math.min(5, Math.round(detail.rating_average)));
71
+ const stars = "\u2605".repeat(full) + "\u2606".repeat(5 - full);
72
+ lines.push("");
73
+ lines.push(`${chalk.bold("Rating:")} ${stars} ${detail.rating_average}/5 (${detail.rating_count} review${detail.rating_count === 1 ? "" : "s"})`);
40
74
  }
41
75
  // Stats
42
76
  const stats = [];
43
77
  if (detail.download_count != null)
44
78
  stats.push(`Downloads: ${detail.download_count}`);
45
- if (detail.source_stars != null)
46
- stats.push(`Stars: ${detail.source_stars}`);
47
79
  if (detail.source_installs != null)
48
80
  stats.push(`Installs: ${detail.source_installs}`);
81
+ if (detail.source_stars != null)
82
+ stats.push(`Stars: ${detail.source_stars}`);
49
83
  if (stats.length > 0) {
50
- console.log(` Stats: ${stats.join(" | ")}`);
51
- }
52
- // Rating
53
- if (detail.rating_average != null && detail.rating_count > 0) {
54
- console.log(` Rating: ${detail.rating_average.toFixed(1)}/5 (${detail.rating_count} review${detail.rating_count === 1 ? "" : "s"})`);
84
+ lines.push("");
85
+ lines.push(`${chalk.bold("Stats:")} ${stats.join(" | ")}`);
55
86
  }
56
87
  // URL
57
88
  const url = detail.source_url || `https://agentpowers.ai/skills/${slug}`;
58
- console.log(` URL: ${url}`);
59
- console.log("");
89
+ lines.push(`${chalk.bold("URL:")} ${url}`);
90
+ // Render as panel
91
+ const title = detail.title || slug;
92
+ console.log(renderPanel(lines.join("\n"), chalk.bold(title), "cyan"));
60
93
  // Install tip
61
- console.log(` Install: npx @agentpowers/cli install ${slug}`);
94
+ console.log(chalk.dim(` Install: npx @agentpowers/cli install ${slug}`));
62
95
  console.log("");
63
96
  }
64
97
  catch (err) {
65
98
  if (err instanceof APIError && err.statusCode === 404) {
66
- console.error(`Error: Skill '${slug}' not found.`);
99
+ console.error(formatError(`Skill '${slug}' not found.`));
67
100
  process.exitCode = 1;
68
101
  }
69
102
  else if (err instanceof APIError) {
70
- console.error(`Error: ${formatAPIError(err)}`);
103
+ console.error(formatError(formatAPIError(err)));
71
104
  process.exitCode = 1;
72
105
  }
73
106
  else if (err instanceof NetworkError) {
74
- console.error(`Error: ${err.message}`);
107
+ console.error(formatError(err.message));
75
108
  process.exitCode = 1;
76
109
  }
77
110
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"detail.js","sourceRoot":"","sources":["../../src/commands/detail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detail.js","sourceRoot":"","sources":["../../src/commands/detail.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  /** Install command — download and install a skill from the marketplace. */
2
2
  import { hostname } from "node:os";
3
+ import chalk from "chalk";
3
4
  import { loadAuthToken } from "../auth.js";
4
5
  import { apiGet, apiPost, recordInstallation, APIError, formatAPIError, NetworkError, } from "../api-client.js";
5
6
  import { downloadAndExtract, validateSlug } from "../installer.js";
7
+ import { formatError, formatSuccess, writeStatus, clearStatus } from "../formatters.js";
6
8
  import { TOOL_CONFIG_DIRS } from "@agentpowers/core";
7
9
  /** Coerce a detail type string to PackageType, defaulting to "skill". */
8
10
  function toPackageType(raw) {
@@ -13,7 +15,7 @@ function toPackageType(raw) {
13
15
  export async function installCommand(slug, options) {
14
16
  // Validate slug format
15
17
  if (!validateSlug(slug)) {
16
- console.error(`Error: Invalid slug "${slug}". Slugs must be lowercase alphanumeric with hyphens only.`);
18
+ console.error(formatError(`Invalid slug "${slug}". Slugs must be lowercase alphanumeric with hyphens only.`));
17
19
  process.exitCode = 1;
18
20
  return;
19
21
  }
@@ -21,7 +23,7 @@ export async function installCommand(slug, options) {
21
23
  // Validate target tool
22
24
  if (!(targetTool in TOOL_CONFIG_DIRS)) {
23
25
  const supported = Object.keys(TOOL_CONFIG_DIRS).sort().join(", ");
24
- console.error(`Error: Unknown tool "${targetTool}". Supported tools: ${supported}`);
26
+ console.error(formatError(`Unknown tool "${targetTool}". Supported tools: ${supported}`));
25
27
  process.exitCode = 1;
26
28
  return;
27
29
  }
@@ -31,33 +33,33 @@ export async function installCommand(slug, options) {
31
33
  // --code: redeem license code before downloading
32
34
  if (options?.code) {
33
35
  if (!token) {
34
- console.error("Error: Authentication required to redeem a license code. Run `npx @agentpowers/cli login` first.");
36
+ console.error(formatError("Authentication required to redeem a license code. Run `npx @agentpowers/cli login` first."));
35
37
  process.exitCode = 1;
36
38
  return;
37
39
  }
38
- console.log("Redeeming license code...");
40
+ writeStatus("Redeeming license code...");
39
41
  await apiPost("/v1/purchases/redeem", { license_code: options.code }, token);
40
- console.log("License code redeemed.");
42
+ clearStatus();
43
+ console.log(chalk.green("License code redeemed."));
41
44
  }
42
45
  // --source: install from a specific external source
43
46
  if (source) {
44
- console.log(`Fetching ${slug} from ${source}...`);
47
+ writeStatus(`Fetching ${slug} from ${source}...`);
45
48
  const detail = await apiGet(`/v1/detail/${encodeURIComponent(slug)}`, { source }, token);
49
+ clearStatus();
46
50
  const downloadUrl = detail.source_url;
47
51
  if (!downloadUrl) {
48
- console.error(`Error: No download URL available for "${slug}" from source "${source}".`);
52
+ console.error(formatError(`No download URL available for "${slug}" from source "${source}".`));
49
53
  process.exitCode = 1;
50
54
  return;
51
55
  }
52
56
  const result = await downloadAndExtract(downloadUrl, slug, toPackageType(detail.type), source, detail.version ?? null, detail.security_status ?? "pass", targetTool);
53
- console.log(`Installed ${slug} to ${result.installDir}`);
54
- console.log(`Content hash: ${result.contentHash}`);
57
+ console.log(formatSuccess(`Installed '${slug}' to ${result.installDir}`));
55
58
  void recordInstallation(slug, "cli", source, hostname(), token);
56
- console.log("\nThe skill is now available.");
57
59
  return;
58
60
  }
59
61
  // Default flow: try native AgentPowers first
60
- console.log(`Downloading ${slug}...`);
62
+ writeStatus(`Downloading ${slug}...`);
61
63
  let downloadData = null;
62
64
  let nativeError = null;
63
65
  try {
@@ -73,16 +75,15 @@ export async function installCommand(slug, options) {
73
75
  }
74
76
  // Found natively — download and install
75
77
  if (downloadData) {
78
+ clearStatus();
76
79
  const result = await downloadAndExtract(downloadData.url, slug, "skill", "agentpowers", null, "pass", targetTool);
77
- console.log(`Installed ${slug} to ${result.installDir}`);
78
- console.log(`Content hash: ${result.contentHash}`);
80
+ console.log(formatSuccess(`Installed '${slug}' to ${result.installDir}`));
79
81
  void recordInstallation(slug, "cli", "agentpowers", hostname(), token);
80
- console.log("\nThe skill is now available.");
81
82
  return;
82
83
  }
83
84
  // Not found natively — try unified detail endpoint for external sources
84
85
  if (nativeError) {
85
- console.log("Not found in AgentPowers, searching other sources...");
86
+ writeStatus("Searching other sources...");
86
87
  let detail = null;
87
88
  try {
88
89
  detail = await apiGet(`/v1/detail/${encodeURIComponent(slug)}`, undefined, token);
@@ -95,47 +96,45 @@ export async function installCommand(slug, options) {
95
96
  throw err;
96
97
  }
97
98
  }
99
+ clearStatus();
98
100
  if (detail && detail.source && detail.source !== "agentpowers") {
99
101
  const detailSource = detail.source;
100
102
  const downloadUrl = detail.source_url;
101
103
  if (!downloadUrl) {
102
- console.error(`Error: No download URL available for "${slug}" from source "${detailSource}".`);
104
+ console.error(formatError(`No download URL available for "${slug}" from source "${detailSource}".`));
103
105
  process.exitCode = 1;
104
106
  return;
105
107
  }
106
- console.log(`Found on ${detailSource}: ${detail.title ?? slug} (v${detail.version ?? "?"})`);
108
+ console.log(`Found on ${chalk.yellow(detailSource)}: ${chalk.cyan(detail.title ?? slug)} (v${detail.version ?? "?"})`);
107
109
  const result = await downloadAndExtract(downloadUrl, slug, toPackageType(detail.type), detailSource, detail.version ?? null, detail.security_status ?? "pass", targetTool);
108
- console.log(`Installed ${slug} to ${result.installDir}`);
109
- console.log(`Content hash: ${result.contentHash}`);
110
+ console.log(formatSuccess(`Installed '${slug}' to ${result.installDir}`));
110
111
  void recordInstallation(slug, "cli", detailSource, hostname(), token);
111
- console.log("\nThe skill is now available.");
112
112
  return;
113
113
  }
114
114
  // If detail returned a native result, try downloading it
115
115
  if (detail && (!detail.source || detail.source === "agentpowers")) {
116
116
  const nativeDownload = await apiGet(`/v1/skills/${encodeURIComponent(slug)}/download`, undefined, token);
117
117
  const result = await downloadAndExtract(nativeDownload.url, slug, toPackageType(detail.type), "agentpowers", null, detail.security_status ?? "pass", targetTool);
118
- console.log(`Installed ${slug} to ${result.installDir}`);
119
- console.log(`Content hash: ${result.contentHash}`);
118
+ console.log(formatSuccess(`Installed '${slug}' to ${result.installDir}`));
120
119
  void recordInstallation(slug, "cli", "agentpowers", hostname(), token);
121
- console.log("\nThe skill is now available.");
122
120
  return;
123
121
  }
124
- console.error(`Error: Skill "${slug}" not found in any source.`);
122
+ console.error(formatError(`Skill "${slug}" not found in any source.`));
125
123
  process.exitCode = 1;
126
124
  }
127
125
  }
128
126
  catch (err) {
127
+ clearStatus();
129
128
  if (err instanceof APIError) {
130
- console.error(`Error: ${formatAPIError(err)}`);
129
+ console.error(formatError(formatAPIError(err)));
131
130
  process.exitCode = 1;
132
131
  }
133
132
  else if (err instanceof NetworkError) {
134
- console.error(`Error: ${err.message}`);
133
+ console.error(formatError(err.message));
135
134
  process.exitCode = 1;
136
135
  }
137
136
  else if (err instanceof Error) {
138
- console.error(`Error: ${err.message}`);
137
+ console.error(formatError(err.message));
139
138
  process.exitCode = 1;
140
139
  }
141
140
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAcrD,yEAAyE;AACzE,SAAS,aAAa,CAAC,GAAkB;IACvC,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,OAAwB;IAExB,uBAAuB;IACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CACX,wBAAwB,IAAI,4DAA4D,CACzF,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,EAAE,GAAG,IAAI,aAAa,CAAC;IAEjD,uBAAuB;IACvB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,CAAC,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,KAAK,CACX,wBAAwB,UAAU,uBAAuB,SAAS,EAAE,CACrE,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAE/B,IAAI,CAAC;QACH,iDAAiD;QACjD,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACX,kGAAkG,CACnG,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,MAAM,OAAO,CACX,sBAAsB,EACtB,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,EAC9B,KAAK,CACN,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QAED,oDAAoD;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS,MAAM,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE,EACxC,EAAE,MAAM,EAAE,EACV,KAAK,CACN,CAAC;YAEF,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;YACtC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CACX,yCAAyC,IAAI,kBAAkB,MAAM,IAAI,CAC1E,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,WAAW,EACX,IAAI,EACJ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAC1B,MAAM,EACN,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,MAAM,CAAC,eAAe,IAAI,MAAM,EAChC,UAAU,CACX,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,KAAK,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC;QAEtC,IAAI,YAAY,GAA4B,IAAI,CAAC;QACjD,IAAI,WAAW,GAAoB,IAAI,CAAC;QAExC,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,MAAM,CACzB,cAAc,kBAAkB,CAAC,IAAI,CAAC,WAAW,EACjD,SAAS,EACT,KAAK,CACN,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACtD,WAAW,GAAG,GAAG,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,YAAY,CAAC,GAAG,EAChB,IAAI,EACJ,OAAO,EACP,aAAa,EACb,IAAI,EACJ,MAAM,EACN,UAAU,CACX,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,KAAK,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAEpE,IAAI,MAAM,GAAyB,IAAI,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,MAAM,CACnB,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE,EACxC,SAAS,EACT,KAAK,CACN,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBACtD,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;gBACnC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;gBAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CACX,yCAAyC,IAAI,kBAAkB,YAAY,IAAI,CAChF,CAAC;oBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAG,CACT,YAAY,YAAY,KAAK,MAAM,CAAC,KAAK,IAAI,IAAI,MAAM,MAAM,CAAC,OAAO,IAAI,GAAG,GAAG,CAChF,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,WAAW,EACX,IAAI,EACJ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAC1B,YAAY,EACZ,MAAM,CAAC,OAAO,IAAI,IAAI,EACtB,MAAM,CAAC,eAAe,IAAI,MAAM,EAChC,UAAU,CACX,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,KAAK,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,yDAAyD;YACzD,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,CAAC;gBAClE,MAAM,cAAc,GAAG,MAAM,MAAM,CACjC,cAAc,kBAAkB,CAAC,IAAI,CAAC,WAAW,EACjD,SAAS,EACT,KAAK,CACN,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,cAAc,CAAC,GAAG,EAClB,IAAI,EACJ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAC1B,aAAa,EACb,IAAI,EACJ,MAAM,CAAC,eAAe,IAAI,MAAM,EAChC,UAAU,CACX,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,KAAK,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,4BAA4B,CAAC,CAAC;YACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,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,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YAChC,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":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@
2
2
  import { execFile } from "node:child_process";
3
3
  import { platform } from "node:os";
4
4
  import { mkdirSync, chmodSync } from "node:fs";
5
+ import chalk from "chalk";
5
6
  import { isAuthenticated, waitForAuthToken } from "../auth.js";
7
+ import { formatError, formatSuccess, writeStatus, clearStatus } from "../formatters.js";
6
8
  import { LOGIN_URL, AUTH_DIR } from "../config.js";
7
9
  /**
8
10
  * Open a URL in the user's default browser.
@@ -26,15 +28,15 @@ function openBrowser(url) {
26
28
  }
27
29
  execFile(cmd, args, (err) => {
28
30
  if (err) {
29
- console.log(`Could not open browser. Please visit: ${url}`);
31
+ console.log(`Could not open browser. Please visit: ${chalk.bold(url)}`);
30
32
  }
31
33
  });
32
34
  }
33
35
  export async function loginCommand() {
34
36
  // Check if already authenticated
35
37
  if (isAuthenticated()) {
36
- console.log("You are already logged in.");
37
- console.log("To log in with a different account, delete ~/.agentpowers/auth.json and try again.");
38
+ console.log(chalk.green("You are already logged in."));
39
+ console.log(chalk.dim("To log in with a different account, delete ~/.agentpowers/auth.json and try again."));
38
40
  return;
39
41
  }
40
42
  // Ensure auth directory exists with restricted permissions
@@ -46,16 +48,17 @@ export async function loginCommand() {
46
48
  // chmod may fail on non-POSIX systems — non-blocking
47
49
  }
48
50
  console.log("Opening browser for login...");
49
- console.log(`If the browser does not open, visit: ${LOGIN_URL}`);
51
+ console.log(`If the browser does not open, visit: ${chalk.bold(LOGIN_URL)}`);
50
52
  console.log("");
51
53
  openBrowser(LOGIN_URL);
52
- console.log("Waiting for authentication...");
54
+ writeStatus("Waiting for authentication...");
53
55
  const token = await waitForAuthToken();
56
+ clearStatus();
54
57
  if (token) {
55
- console.log("Login successful! You are now authenticated.");
58
+ console.log(formatSuccess("Login successful! You are now authenticated."));
56
59
  }
57
60
  else {
58
- console.error("Login timed out. Please try again.");
61
+ console.error(formatError("Login timed out. Please try again."));
59
62
  process.exitCode = 1;
60
63
  }
61
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,IAAI,GAAW,CAAC;IAChB,IAAI,IAAc,CAAC;IACnB,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,GAAG,GAAG,MAAM,CAAC;QACb,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QAC1B,GAAG,GAAG,KAAK,CAAC;QACZ,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,UAAU,CAAC;QACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,iCAAiC;IACjC,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;QAClG,OAAO;IACT,CAAC;IAED,2DAA2D;IAC3D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,WAAW,CAAC,SAAS,CAAC,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAEvC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,IAAI,GAAW,CAAC;IAChB,IAAI,IAAc,CAAC;IACnB,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,GAAG,GAAG,MAAM,CAAC;QACb,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QAC1B,GAAG,GAAG,KAAK,CAAC;QACZ,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,UAAU,CAAC;QACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,iCAAiC;IACjC,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC,CAAC;QAC7G,OAAO;IACT,CAAC;IAED,2DAA2D;IAC3D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,WAAW,CAAC,SAAS,CAAC,CAAC;IAEvB,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvC,WAAW,EAAE,CAAC;IAEd,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -2,6 +2,7 @@
2
2
  import { existsSync, unlinkSync } from "node:fs";
3
3
  import { loadAuthToken } from "../auth.js";
4
4
  import { apiPost } from "../api-client.js";
5
+ import { formatSuccess } from "../formatters.js";
5
6
  import { AUTH_FILE } from "@agentpowers/core";
6
7
  export async function logoutCommand() {
7
8
  // Best-effort server-side revocation
@@ -18,6 +19,6 @@ export async function logoutCommand() {
18
19
  if (existsSync(AUTH_FILE)) {
19
20
  unlinkSync(AUTH_FILE);
20
21
  }
21
- console.log("Logged out.");
22
+ console.log(formatSuccess("Logged out."));
22
23
  }
23
24
  //# sourceMappingURL=logout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,qCAAqC;IACrC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,2BAA2B,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,UAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,qCAAqC;IACrC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,2BAA2B,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,UAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5C,CAAC"}