@leaperone/cli 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare function registerEndpointsCommand(program: Command): void;
@@ -0,0 +1,105 @@
1
+ import chalk from "chalk";
2
+ import { request } from "../lib/api.js";
3
+ import { jsonOutput, table, error } from "../lib/output.js";
4
+ import { spin } from "../lib/spinner.js";
5
+ function formatPricing(endpoint) {
6
+ if (endpoint.pricing.length === 0)
7
+ return "-";
8
+ const first = endpoint.pricing[0];
9
+ switch (first.type) {
10
+ case "token": {
11
+ const prices = endpoint.pricing
12
+ .map((p) => `$${p.inputPer1M}/$${p.outputPer1M}`)
13
+ .join(", ");
14
+ return `${prices} /1M tokens`;
15
+ }
16
+ case "duration":
17
+ return `$${first.perMinute} /min`;
18
+ case "fixed":
19
+ return `$${first.perUnit} /${first.unit}`;
20
+ default:
21
+ return "-";
22
+ }
23
+ }
24
+ function formatStatus(status) {
25
+ switch (status) {
26
+ case "operational":
27
+ return chalk.green("●") + " operational";
28
+ case "degraded":
29
+ return chalk.yellow("●") + " degraded";
30
+ case "unavailable":
31
+ return chalk.red("●") + " unavailable";
32
+ default:
33
+ return chalk.dim("-");
34
+ }
35
+ }
36
+ function renderEndpoints(endpoints, json) {
37
+ if (json) {
38
+ jsonOutput(endpoints);
39
+ return;
40
+ }
41
+ table(["Method", "Path", "Name", "Status", "Models", "Pricing"], endpoints.map((ep) => [
42
+ ep.method,
43
+ ep.path,
44
+ ep.name,
45
+ formatStatus(ep.status),
46
+ ep.models
47
+ .map((m) => {
48
+ if (m.status === "unavailable")
49
+ return chalk.strikethrough(chalk.dim(m.model));
50
+ return m.model;
51
+ })
52
+ .join(", ") || "-",
53
+ formatPricing(ep),
54
+ ]));
55
+ }
56
+ export function registerEndpointsCommand(program) {
57
+ const endpoints = program
58
+ .command("endpoints")
59
+ .alias("ep")
60
+ .description("List available API endpoints");
61
+ endpoints
62
+ .command("list")
63
+ .alias("ls")
64
+ .description("List all available API endpoints with pricing and status")
65
+ .action(async () => {
66
+ const json = program.opts().json;
67
+ try {
68
+ const s = json ? null : spin("Fetching endpoints...");
69
+ const data = await request("/endpoints");
70
+ s?.stop();
71
+ renderEndpoints(data.endpoints, json);
72
+ }
73
+ catch (err) {
74
+ if (json)
75
+ jsonOutput({ error: err.message });
76
+ else
77
+ error(err.message);
78
+ process.exit(1);
79
+ }
80
+ });
81
+ // Default action: show list when running `leaperone endpoints` with no subcommand
82
+ endpoints.action(async () => {
83
+ const json = program.opts().json;
84
+ try {
85
+ const s = json ? null : spin("Fetching endpoints...");
86
+ const data = await request("/endpoints");
87
+ s?.stop();
88
+ if (!json)
89
+ console.log("Available API endpoints:\n");
90
+ renderEndpoints(data.endpoints, json);
91
+ if (!json) {
92
+ console.log("\nBase URL: https://api.leaper.one");
93
+ console.log("Full docs: leaperone docs list");
94
+ }
95
+ }
96
+ catch (err) {
97
+ if (json)
98
+ jsonOutput({ error: err.message });
99
+ else
100
+ error(err.message);
101
+ process.exit(1);
102
+ }
103
+ });
104
+ }
105
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/commands/endpoints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA2BzC,SAAS,aAAa,CAAC,QAAsB;IAC3C,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAE9C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO;iBAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;iBAChD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,GAAG,MAAM,aAAa,CAAC;QAChC,CAAC;QACD,KAAK,UAAU;YACb,OAAO,IAAI,KAAK,CAAC,SAAS,OAAO,CAAC;QACpC,KAAK,OAAO;YACV,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAe;IACnC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;QAC3C,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QACzC,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;QACzC;YACE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAyB,EAAE,IAAa;IAC/D,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,CACH,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EACzD,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,EAAE,CAAC,MAAM;QACT,EAAE,CAAC,IAAI;QACP,EAAE,CAAC,IAAI;QACP,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC;QACvB,EAAE,CAAC,MAAM;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;QACpB,aAAa,CAAC,EAAE,CAAC;KAClB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE/C,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAgC,YAAY,CAAC,CAAC;YACxE,CAAC,EAAE,IAAI,EAAE,CAAC;YACV,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI;gBAAE,UAAU,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;;gBACnD,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kFAAkF;IAClF,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAgC,YAAY,CAAC,CAAC;YACxE,CAAC,EAAE,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACrD,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI;gBAAE,UAAU,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;;gBACnD,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -1,18 +1,21 @@
1
+ import { createRequire } from "node:module";
1
2
  import { Command } from "commander";
2
3
  import { registerAuthCommand } from "./commands/auth.js";
3
4
  import { registerApiKeyCommand } from "./commands/apikey.js";
4
5
  import { registerCreditCommand } from "./commands/credit.js";
5
6
  import { registerDocsCommand } from "./commands/docs.js";
7
+ import { registerEndpointsCommand } from "./commands/endpoints.js";
6
8
  import { registerConfigCommand } from "./commands/config.js";
9
+ const require = createRequire(import.meta.url);
10
+ const pkg = require("../package.json");
7
11
  // Check for updates (async, non-blocking)
8
12
  import updateNotifier from "update-notifier";
9
- const pkg = { name: "@leaperone/cli", version: "0.1.3" };
10
13
  updateNotifier({ pkg }).notify({ isGlobal: true });
11
14
  const program = new Command();
12
15
  program
13
16
  .name("leaperone")
14
17
  .description("LEAPERone CLI - Manage API keys, credits, and access documentation")
15
- .version("0.1.3")
18
+ .version(pkg.version)
16
19
  .option("--json", "Output in JSON format (useful for agents and scripts)")
17
20
  .configureHelp({
18
21
  sortSubcommands: true,
@@ -21,6 +24,7 @@ registerAuthCommand(program);
21
24
  registerApiKeyCommand(program);
22
25
  registerCreditCommand(program);
23
26
  registerDocsCommand(program);
27
+ registerEndpointsCommand(program);
24
28
  registerConfigCommand(program);
25
29
  program.parse();
26
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,0CAA0C;AAC1C,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACzD,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,QAAQ,EAAE,uDAAuD,CAAC;KACzE,aAAa,CAAC;IACb,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEL,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAsC,CAAC;AAE5E,0CAA0C;AAC1C,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,QAAQ,EAAE,uDAAuD,CAAC;KACzE,aAAa,CAAC;IACb,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEL,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaperone/cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "LEAPERone CLI - Manage API keys, credits, and access documentation",
5
5
  "type": "module",
6
6
  "bin": {