@leaperone/cli 0.1.6 → 0.1.8
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/dist/commands/auth.js +13 -5
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/feedback.d.ts +2 -0
- package/dist/commands/feedback.js +163 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/skills.d.ts +2 -0
- package/dist/commands/skills.js +85 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.js +93 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/index.js +40 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/cleanup.d.ts +5 -0
- package/dist/lib/cleanup.js +19 -0
- package/dist/lib/cleanup.js.map +1 -0
- package/dist/types.d.ts +30 -0
- package/package.json +8 -3
- package/skills/leaperone-cli/SKILL.md +166 -0
package/dist/commands/auth.js
CHANGED
|
@@ -4,6 +4,7 @@ import chalk from "chalk";
|
|
|
4
4
|
import { loadConfig, saveConfig, clearAuth, getCredential, getBaseUrl, CONFIG_FILE } from "../lib/config.js";
|
|
5
5
|
import { jsonOutput, keyValue, success, error } from "../lib/output.js";
|
|
6
6
|
import { spin } from "../lib/spinner.js";
|
|
7
|
+
import { onCleanup, removeCleanup } from "../lib/cleanup.js";
|
|
7
8
|
function openBrowser(url) {
|
|
8
9
|
const cmd = process.platform === "darwin" ? "open" :
|
|
9
10
|
process.platform === "win32" ? "start" : "xdg-open";
|
|
@@ -19,7 +20,7 @@ function browserLogin(baseUrl) {
|
|
|
19
20
|
if (!code) {
|
|
20
21
|
res.writeHead(400, { "Content-Type": "text/html; charset=utf-8" });
|
|
21
22
|
res.end("<html><body><h2>Missing authorization code.</h2></body></html>");
|
|
22
|
-
|
|
23
|
+
closeAndDeregister();
|
|
23
24
|
reject(new Error("No authorization code received"));
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
@@ -46,7 +47,7 @@ function browserLogin(baseUrl) {
|
|
|
46
47
|
}
|
|
47
48
|
})
|
|
48
49
|
.then((data) => {
|
|
49
|
-
|
|
50
|
+
closeAndDeregister();
|
|
50
51
|
if (data.success && data.data?.token) {
|
|
51
52
|
resolve(data.data.token);
|
|
52
53
|
}
|
|
@@ -55,7 +56,7 @@ function browserLogin(baseUrl) {
|
|
|
55
56
|
}
|
|
56
57
|
})
|
|
57
58
|
.catch((err) => {
|
|
58
|
-
|
|
59
|
+
closeAndDeregister();
|
|
59
60
|
reject(err);
|
|
60
61
|
});
|
|
61
62
|
}
|
|
@@ -64,10 +65,17 @@ function browserLogin(baseUrl) {
|
|
|
64
65
|
res.end();
|
|
65
66
|
}
|
|
66
67
|
});
|
|
68
|
+
const closeAndDeregister = () => {
|
|
69
|
+
clearTimeout(timer);
|
|
70
|
+
server.close();
|
|
71
|
+
removeCleanup(closeAndDeregister);
|
|
72
|
+
};
|
|
73
|
+
onCleanup(closeAndDeregister);
|
|
67
74
|
// Listen on random port
|
|
68
75
|
server.listen(0, "127.0.0.1", () => {
|
|
69
76
|
const addr = server.address();
|
|
70
77
|
if (!addr || typeof addr === "string") {
|
|
78
|
+
closeAndDeregister();
|
|
71
79
|
reject(new Error("Failed to start local server"));
|
|
72
80
|
return;
|
|
73
81
|
}
|
|
@@ -79,8 +87,8 @@ function browserLogin(baseUrl) {
|
|
|
79
87
|
openBrowser(authUrl);
|
|
80
88
|
});
|
|
81
89
|
// Timeout after 3 minutes
|
|
82
|
-
setTimeout(() => {
|
|
83
|
-
|
|
90
|
+
const timer = setTimeout(() => {
|
|
91
|
+
closeAndDeregister();
|
|
84
92
|
reject(new Error("Authorization timed out (3 minutes)"));
|
|
85
93
|
}, 3 * 60 * 1000);
|
|
86
94
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { request } from "../lib/api.js";
|
|
4
|
+
import { jsonOutput, keyValue, table, success, error } from "../lib/output.js";
|
|
5
|
+
import { spin } from "../lib/spinner.js";
|
|
6
|
+
import { getBaseUrl } from "../lib/config.js";
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
8
|
+
const pkg = require("../../package.json");
|
|
9
|
+
function collectMetadata() {
|
|
10
|
+
return {
|
|
11
|
+
cliVersion: pkg.version,
|
|
12
|
+
os: `${os.platform()} ${os.arch()}`,
|
|
13
|
+
osVersion: os.release(),
|
|
14
|
+
nodeVersion: process.version,
|
|
15
|
+
baseUrl: getBaseUrl(),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const STATUS_LABELS = {
|
|
19
|
+
open: "Open",
|
|
20
|
+
pending: "Pending",
|
|
21
|
+
in_progress: "In Progress",
|
|
22
|
+
resolved: "Resolved",
|
|
23
|
+
closed: "Closed",
|
|
24
|
+
};
|
|
25
|
+
export function registerFeedbackCommand(program) {
|
|
26
|
+
const feedback = program
|
|
27
|
+
.command("feedback")
|
|
28
|
+
.description("Submit feedback or report issues");
|
|
29
|
+
feedback
|
|
30
|
+
.command("create")
|
|
31
|
+
.description("Create a new feedback ticket")
|
|
32
|
+
.requiredOption("-s, --subject <subject>", "Short summary of the issue")
|
|
33
|
+
.requiredOption("-m, --message <message>", "Detailed description")
|
|
34
|
+
.option("-c, --category <category>", "Category: bug, suggestion, account, other", "other")
|
|
35
|
+
.action(async (opts) => {
|
|
36
|
+
const json = program.opts().json;
|
|
37
|
+
try {
|
|
38
|
+
const s = json ? null : spin("Submitting feedback...");
|
|
39
|
+
const data = await request("/tickets", {
|
|
40
|
+
method: "POST",
|
|
41
|
+
body: {
|
|
42
|
+
subject: opts.subject,
|
|
43
|
+
content: opts.message,
|
|
44
|
+
category: opts.category,
|
|
45
|
+
source: "cli",
|
|
46
|
+
metadata: collectMetadata(),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
s?.stop();
|
|
50
|
+
if (json) {
|
|
51
|
+
jsonOutput(data);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
success(`Ticket created: ${data.id}`);
|
|
55
|
+
console.log(` View it with: leaperone feedback view ${data.id}`);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (json)
|
|
59
|
+
jsonOutput({ error: err.message });
|
|
60
|
+
else
|
|
61
|
+
error(err.message);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
feedback
|
|
66
|
+
.command("list")
|
|
67
|
+
.description("List your feedback tickets")
|
|
68
|
+
.action(async () => {
|
|
69
|
+
const json = program.opts().json;
|
|
70
|
+
try {
|
|
71
|
+
const s = json ? null : spin("Fetching tickets...");
|
|
72
|
+
const data = await request("/tickets");
|
|
73
|
+
s?.stop();
|
|
74
|
+
if (json) {
|
|
75
|
+
jsonOutput(data);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (data.length === 0) {
|
|
79
|
+
console.log("No tickets found.");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
table(["ID", "Subject", "Status", "Category", "Updated"], data.map((t) => [
|
|
83
|
+
t.id.slice(0, 8),
|
|
84
|
+
t.subject.slice(0, 40),
|
|
85
|
+
STATUS_LABELS[t.status] ?? t.status,
|
|
86
|
+
t.category,
|
|
87
|
+
new Date(t.updatedAt).toLocaleString(),
|
|
88
|
+
]));
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (json)
|
|
92
|
+
jsonOutput({ error: err.message });
|
|
93
|
+
else
|
|
94
|
+
error(err.message);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
feedback
|
|
99
|
+
.command("view <id>")
|
|
100
|
+
.description("View a ticket and its messages")
|
|
101
|
+
.action(async (id) => {
|
|
102
|
+
const json = program.opts().json;
|
|
103
|
+
try {
|
|
104
|
+
const s = json ? null : spin("Fetching ticket...");
|
|
105
|
+
const data = await request(`/tickets/${id}`);
|
|
106
|
+
s?.stop();
|
|
107
|
+
if (json) {
|
|
108
|
+
jsonOutput(data);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
keyValue([
|
|
112
|
+
["ID", data.id],
|
|
113
|
+
["Subject", data.subject],
|
|
114
|
+
["Status", STATUS_LABELS[data.status] ?? data.status],
|
|
115
|
+
["Category", data.category],
|
|
116
|
+
["Created", new Date(data.createdAt).toLocaleString()],
|
|
117
|
+
]);
|
|
118
|
+
console.log("");
|
|
119
|
+
for (const msg of data.messages) {
|
|
120
|
+
const role = msg.role === "admin" ? "Support" : "You";
|
|
121
|
+
const time = new Date(msg.createdAt).toLocaleString();
|
|
122
|
+
console.log(` [${role}] ${time}`);
|
|
123
|
+
console.log(` ${msg.content}`);
|
|
124
|
+
console.log("");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
if (json)
|
|
129
|
+
jsonOutput({ error: err.message });
|
|
130
|
+
else
|
|
131
|
+
error(err.message);
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
feedback
|
|
136
|
+
.command("reply <id>")
|
|
137
|
+
.description("Reply to an existing ticket")
|
|
138
|
+
.requiredOption("-m, --message <message>", "Reply message")
|
|
139
|
+
.action(async (id, opts) => {
|
|
140
|
+
const json = program.opts().json;
|
|
141
|
+
try {
|
|
142
|
+
const s = json ? null : spin("Sending reply...");
|
|
143
|
+
const data = await request(`/tickets/${id}/messages`, {
|
|
144
|
+
method: "POST",
|
|
145
|
+
body: { content: opts.message },
|
|
146
|
+
});
|
|
147
|
+
s?.stop();
|
|
148
|
+
if (json) {
|
|
149
|
+
jsonOutput(data);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
success("Reply sent.");
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
if (json)
|
|
156
|
+
jsonOutput({ error: err.message });
|
|
157
|
+
else
|
|
158
|
+
error(err.message);
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/commands/feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { jsonOutput, error } from "../lib/output.js";
|
|
5
|
+
function getSkillsDir() {
|
|
6
|
+
// skills/ is at package root, dist/commands/ is two levels deep from there
|
|
7
|
+
const dir = path.resolve(import.meta.dirname, "../../skills");
|
|
8
|
+
if (!fs.existsSync(dir)) {
|
|
9
|
+
throw new Error("Skills directory not found. The package may be incomplete — try reinstalling @leaperone/cli.");
|
|
10
|
+
}
|
|
11
|
+
return dir;
|
|
12
|
+
}
|
|
13
|
+
export function registerSkillsCommand(program) {
|
|
14
|
+
const skills = program
|
|
15
|
+
.command("skills")
|
|
16
|
+
.description("Install agent skills for AI coding assistants");
|
|
17
|
+
skills
|
|
18
|
+
.command("path")
|
|
19
|
+
.description("Print the path to bundled skills directory")
|
|
20
|
+
.action(() => {
|
|
21
|
+
const json = program.opts().json;
|
|
22
|
+
try {
|
|
23
|
+
const dir = getSkillsDir();
|
|
24
|
+
if (json) {
|
|
25
|
+
jsonOutput({ path: dir });
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
console.log(dir);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
if (json)
|
|
33
|
+
jsonOutput({ error: err.message });
|
|
34
|
+
else
|
|
35
|
+
error(err.message);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
skills
|
|
40
|
+
.command("install")
|
|
41
|
+
.description("Show how to install LEAPERone skills for your AI agent")
|
|
42
|
+
.action(() => {
|
|
43
|
+
const json = program.opts().json;
|
|
44
|
+
try {
|
|
45
|
+
const dir = getSkillsDir();
|
|
46
|
+
if (json) {
|
|
47
|
+
jsonOutput({
|
|
48
|
+
skillsDir: dir,
|
|
49
|
+
methods: [
|
|
50
|
+
{ name: "skills-npm", command: "npx skills-npm" },
|
|
51
|
+
{ name: "skills-cli", command: `npx skills add ${dir}` },
|
|
52
|
+
{ name: "manual", command: `cp -r ${dir}/leaperone-cli ~/.claude/skills/` },
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
console.log(`${chalk.bold("LEAPERone Agent Skills")}\n`);
|
|
58
|
+
console.log(`Skills are bundled at: ${chalk.cyan(dir)}\n`);
|
|
59
|
+
console.log(`${chalk.bold("Install methods:")}\n`);
|
|
60
|
+
console.log(` ${chalk.yellow("1.")} Auto-discover from node_modules (recommended):`);
|
|
61
|
+
console.log(` ${chalk.dim("$")} ${chalk.green("npx skills-npm")}\n`);
|
|
62
|
+
console.log(` ${chalk.yellow("2.")} Install via skills CLI:`);
|
|
63
|
+
console.log(` ${chalk.dim("$")} ${chalk.green(`npx skills add ${dir}`)}\n`);
|
|
64
|
+
console.log(` ${chalk.yellow("3.")} Manual copy (Claude Code):`);
|
|
65
|
+
console.log(` ${chalk.dim("$")} ${chalk.green(`cp -r ${dir}/leaperone-cli ~/.claude/skills/`)}\n`);
|
|
66
|
+
console.log(`${chalk.dim("Supported agents: Claude Code, Cursor, Codex, Windsurf, and 40+ more.")}`);
|
|
67
|
+
console.log(`${chalk.dim("Learn more: https://leaper.one/docs/advanced/cli#agent-skills")}`);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
if (json)
|
|
71
|
+
jsonOutput({ error: err.message });
|
|
72
|
+
else
|
|
73
|
+
error(err.message);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
// Default: show install guide
|
|
78
|
+
skills.action(() => {
|
|
79
|
+
const install = skills.commands.find((c) => c.name() === "install");
|
|
80
|
+
if (install) {
|
|
81
|
+
install.parse([], { from: "user" });
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export declare function getGlobalUpgradeCommand(): string;
|
|
3
|
+
export declare function getLatestNpxCommand(): string;
|
|
4
|
+
export declare function isNpxExecution(): boolean;
|
|
5
|
+
export declare function registerUpgradeCommand(program: Command): void;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { spawnSync } from "node:child_process";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { jsonOutput, success, error, warn } from "../lib/output.js";
|
|
6
|
+
import { spin } from "../lib/spinner.js";
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
8
|
+
const pkg = require("../../package.json");
|
|
9
|
+
function getGlobalUpgradeArgs() {
|
|
10
|
+
return ["install", "-g", `${pkg.name}@latest`];
|
|
11
|
+
}
|
|
12
|
+
export function getGlobalUpgradeCommand() {
|
|
13
|
+
return `npm ${getGlobalUpgradeArgs().join(" ")}`;
|
|
14
|
+
}
|
|
15
|
+
export function getLatestNpxCommand() {
|
|
16
|
+
return `npx ${pkg.name}@latest`;
|
|
17
|
+
}
|
|
18
|
+
export function isNpxExecution() {
|
|
19
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
20
|
+
const argv1 = process.argv[1] || "";
|
|
21
|
+
const execPath = process.env.npm_execpath || "";
|
|
22
|
+
const npmPath = `${path.sep}_npx${path.sep}`;
|
|
23
|
+
return [currentFile, argv1, execPath].some((value) => value.includes(npmPath) || value.includes("/_npx/") || value.includes("\\_npx\\"));
|
|
24
|
+
}
|
|
25
|
+
export function registerUpgradeCommand(program) {
|
|
26
|
+
program
|
|
27
|
+
.command("upgrade")
|
|
28
|
+
.description("Upgrade LEAPERone CLI to the latest version")
|
|
29
|
+
.addHelpText("after", `
|
|
30
|
+
Examples:
|
|
31
|
+
$ leaperone upgrade
|
|
32
|
+
$ lpr upgrade
|
|
33
|
+
$ ${getLatestNpxCommand()}
|
|
34
|
+
`)
|
|
35
|
+
.action(() => {
|
|
36
|
+
const json = program.opts().json;
|
|
37
|
+
const globalCommand = getGlobalUpgradeCommand();
|
|
38
|
+
const npxCommand = getLatestNpxCommand();
|
|
39
|
+
if (isNpxExecution()) {
|
|
40
|
+
if (json) {
|
|
41
|
+
jsonOutput({
|
|
42
|
+
success: true,
|
|
43
|
+
mode: "npx",
|
|
44
|
+
version: pkg.version,
|
|
45
|
+
message: "Detected npx execution. There is no persistent global install to upgrade.",
|
|
46
|
+
latestCommand: npxCommand,
|
|
47
|
+
globalInstallCommand: globalCommand,
|
|
48
|
+
});
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
warn("Detected npx execution. There is no persistent CLI install to upgrade.");
|
|
52
|
+
console.log(` Run latest once: ${npxCommand}`);
|
|
53
|
+
console.log(` Install globally: ${globalCommand}`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const s = json ? null : spin("Upgrading CLI...");
|
|
57
|
+
const result = spawnSync("npm", getGlobalUpgradeArgs(), {
|
|
58
|
+
encoding: "utf8",
|
|
59
|
+
stdio: json ? "pipe" : "inherit",
|
|
60
|
+
shell: process.platform === "win32",
|
|
61
|
+
});
|
|
62
|
+
s?.stop();
|
|
63
|
+
if (result.error || result.status !== 0) {
|
|
64
|
+
const stderr = result.stderr?.trim();
|
|
65
|
+
const stdout = result.stdout?.trim();
|
|
66
|
+
const message = result.error?.message || stderr || stdout || "Upgrade failed";
|
|
67
|
+
if (json) {
|
|
68
|
+
jsonOutput({
|
|
69
|
+
success: false,
|
|
70
|
+
command: globalCommand,
|
|
71
|
+
error: message,
|
|
72
|
+
stdout: stdout || undefined,
|
|
73
|
+
stderr: stderr || undefined,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
error(message);
|
|
78
|
+
}
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
if (json) {
|
|
82
|
+
jsonOutput({
|
|
83
|
+
success: true,
|
|
84
|
+
command: globalCommand,
|
|
85
|
+
version: pkg.version,
|
|
86
|
+
stdout: result.stdout?.trim() || undefined,
|
|
87
|
+
});
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
success("CLI upgraded successfully.");
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,11 +6,39 @@ import { registerCreditCommand } from "./commands/credit.js";
|
|
|
6
6
|
import { registerDocsCommand } from "./commands/docs.js";
|
|
7
7
|
import { registerEndpointsCommand } from "./commands/endpoints.js";
|
|
8
8
|
import { registerConfigCommand } from "./commands/config.js";
|
|
9
|
+
import { registerFeedbackCommand } from "./commands/feedback.js";
|
|
10
|
+
import { registerSkillsCommand } from "./commands/skills.js";
|
|
11
|
+
import { getGlobalUpgradeCommand, getLatestNpxCommand, isNpxExecution, registerUpgradeCommand, } from "./commands/upgrade.js";
|
|
12
|
+
import { stopSpinner } from "./lib/spinner.js";
|
|
13
|
+
import { runCleanups } from "./lib/cleanup.js";
|
|
9
14
|
const require = createRequire(import.meta.url);
|
|
10
15
|
const pkg = require("../package.json");
|
|
16
|
+
// Graceful shutdown on Ctrl+C / SIGTERM
|
|
17
|
+
function handleExit(signal) {
|
|
18
|
+
stopSpinner();
|
|
19
|
+
runCleanups();
|
|
20
|
+
if (signal === "SIGINT") {
|
|
21
|
+
console.log("\nCancelled.");
|
|
22
|
+
process.exit(130);
|
|
23
|
+
}
|
|
24
|
+
process.exit(143);
|
|
25
|
+
}
|
|
26
|
+
process.on("SIGINT", () => handleExit("SIGINT"));
|
|
27
|
+
process.on("SIGTERM", () => handleExit("SIGTERM"));
|
|
11
28
|
// Check for updates (async, non-blocking)
|
|
12
29
|
import updateNotifier from "update-notifier";
|
|
13
|
-
updateNotifier({ pkg })
|
|
30
|
+
const notifier = updateNotifier({ pkg });
|
|
31
|
+
if (!process.argv.includes("--json") && notifier.update) {
|
|
32
|
+
notifier.notify(isNpxExecution()
|
|
33
|
+
? {
|
|
34
|
+
message: [
|
|
35
|
+
`Update available ${notifier.update.current} → ${notifier.update.latest}`,
|
|
36
|
+
`Run ${getLatestNpxCommand()} to use the latest version.`,
|
|
37
|
+
`Or install globally with ${getGlobalUpgradeCommand()}.`,
|
|
38
|
+
].join("\n"),
|
|
39
|
+
}
|
|
40
|
+
: { isGlobal: true });
|
|
41
|
+
}
|
|
14
42
|
const program = new Command();
|
|
15
43
|
program
|
|
16
44
|
.name("leaperone")
|
|
@@ -19,12 +47,22 @@ program
|
|
|
19
47
|
.option("--json", "Output in JSON format (useful for agents and scripts)")
|
|
20
48
|
.configureHelp({
|
|
21
49
|
sortSubcommands: true,
|
|
22
|
-
})
|
|
50
|
+
})
|
|
51
|
+
.addHelpText("after", `
|
|
52
|
+
Examples:
|
|
53
|
+
$ leaperone auth login
|
|
54
|
+
$ leaperone credit balance
|
|
55
|
+
$ leaperone upgrade
|
|
56
|
+
$ lpr credit balance
|
|
57
|
+
`);
|
|
23
58
|
registerAuthCommand(program);
|
|
24
59
|
registerApiKeyCommand(program);
|
|
25
60
|
registerCreditCommand(program);
|
|
26
61
|
registerDocsCommand(program);
|
|
27
62
|
registerEndpointsCommand(program);
|
|
28
63
|
registerConfigCommand(program);
|
|
64
|
+
registerFeedbackCommand(program);
|
|
65
|
+
registerSkillsCommand(program);
|
|
66
|
+
registerUpgradeCommand(program);
|
|
29
67
|
program.parse();
|
|
30
68
|
//# 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,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;
|
|
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;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAsC,CAAC;AAE5E,wCAAwC;AACxC,SAAS,UAAU,CAAC,MAAc;IAChC,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnD,0CAA0C;AAC1C,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxD,QAAQ,CAAC,MAAM,CACb,cAAc,EAAE;QACd,CAAC,CAAC;YACE,OAAO,EAAE;gBACP,oBAAoB,QAAQ,CAAC,MAAM,CAAC,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;gBACzE,OAAO,mBAAmB,EAAE,6BAA6B;gBACzD,4BAA4B,uBAAuB,EAAE,GAAG;aACzD,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACH,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACvB,CAAC;AACJ,CAAC;AAED,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;KACD,WAAW,CACV,OAAO,EACP;;;;;;CAMH,CACE,CAAC;AAEJ,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;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const cleanups = [];
|
|
2
|
+
export function onCleanup(fn) {
|
|
3
|
+
cleanups.push(fn);
|
|
4
|
+
}
|
|
5
|
+
export function removeCleanup(fn) {
|
|
6
|
+
const i = cleanups.indexOf(fn);
|
|
7
|
+
if (i !== -1)
|
|
8
|
+
cleanups.splice(i, 1);
|
|
9
|
+
}
|
|
10
|
+
export function runCleanups() {
|
|
11
|
+
for (const fn of cleanups) {
|
|
12
|
+
try {
|
|
13
|
+
fn();
|
|
14
|
+
}
|
|
15
|
+
catch { }
|
|
16
|
+
}
|
|
17
|
+
cleanups.length = 0;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/lib/cleanup.ts"],"names":[],"mappings":"AAIA,MAAM,QAAQ,GAAgB,EAAE,CAAC;AAEjC,MAAM,UAAU,SAAS,CAAC,EAAa;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAa;IACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,EAAE,CAAC;QACP,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -40,6 +40,36 @@ export interface UserInfo {
|
|
|
40
40
|
role: string;
|
|
41
41
|
createdAt: string;
|
|
42
42
|
}
|
|
43
|
+
export interface TicketSummary {
|
|
44
|
+
id: string;
|
|
45
|
+
subject: string;
|
|
46
|
+
status: string;
|
|
47
|
+
category: string;
|
|
48
|
+
source: string;
|
|
49
|
+
hasUnreadReply: boolean;
|
|
50
|
+
lastMessageContent: string | null;
|
|
51
|
+
lastMessageAt: string | null;
|
|
52
|
+
createdAt: string;
|
|
53
|
+
updatedAt: string;
|
|
54
|
+
}
|
|
55
|
+
export interface TicketMessage {
|
|
56
|
+
id: string;
|
|
57
|
+
role: string;
|
|
58
|
+
content: string;
|
|
59
|
+
createdAt: string;
|
|
60
|
+
}
|
|
61
|
+
export interface TicketDetail {
|
|
62
|
+
id: string;
|
|
63
|
+
subject: string;
|
|
64
|
+
status: string;
|
|
65
|
+
category: string;
|
|
66
|
+
source: string;
|
|
67
|
+
metadata: Record<string, unknown> | null;
|
|
68
|
+
createdAt: string;
|
|
69
|
+
updatedAt: string;
|
|
70
|
+
resolvedAt: string | null;
|
|
71
|
+
messages: TicketMessage[];
|
|
72
|
+
}
|
|
43
73
|
export interface ApiResponse<T> {
|
|
44
74
|
success: boolean;
|
|
45
75
|
data?: T;
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leaperone/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "LEAPERone CLI - Manage API keys, credits, and access documentation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"leaperone": "./bin/leaperone.js"
|
|
7
|
+
"leaperone": "./bin/leaperone.js",
|
|
8
|
+
"lpr": "./bin/leaperone.js"
|
|
8
9
|
},
|
|
9
10
|
"scripts": {
|
|
10
11
|
"build": "tsc",
|
|
@@ -12,7 +13,8 @@
|
|
|
12
13
|
},
|
|
13
14
|
"files": [
|
|
14
15
|
"dist",
|
|
15
|
-
"bin"
|
|
16
|
+
"bin",
|
|
17
|
+
"skills"
|
|
16
18
|
],
|
|
17
19
|
"repository": {
|
|
18
20
|
"type": "git",
|
|
@@ -25,6 +27,9 @@
|
|
|
25
27
|
"api",
|
|
26
28
|
"ai"
|
|
27
29
|
],
|
|
30
|
+
"skills": {
|
|
31
|
+
"directory": "skills"
|
|
32
|
+
},
|
|
28
33
|
"license": "MIT",
|
|
29
34
|
"dependencies": {
|
|
30
35
|
"chalk": "^5.6.2",
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: leaperone-cli
|
|
3
|
+
description: Use when working with LEAPERone API, managing API keys, checking credits, or integrating LEAPERone services. Provides CLI commands, authentication flows, and API usage patterns.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# LEAPERone CLI
|
|
7
|
+
|
|
8
|
+
LEAPERone is an OpenAI-compatible AI API gateway. The CLI (`@leaperone/cli`) manages authentication, API keys, credits, and documentation.
|
|
9
|
+
|
|
10
|
+
## Decision Guide
|
|
11
|
+
|
|
12
|
+
- User needs to authenticate → run `leaperone auth login`
|
|
13
|
+
- User is on a headless server / SSH / container → run `leaperone auth login --device`
|
|
14
|
+
- User asks about credits or balance → run `leaperone credit balance`
|
|
15
|
+
- User needs an API key → run `leaperone apikey create -n "<descriptive-name>"`
|
|
16
|
+
- User wants to see available models or pricing → run `leaperone endpoints`
|
|
17
|
+
- User wants to make API calls → use curl or OpenAI SDK with their key (see examples below)
|
|
18
|
+
- User wants to report a bug → run `leaperone feedback create -s "<subject>" -m "<details>" -c bug`
|
|
19
|
+
|
|
20
|
+
## Prerequisite Check
|
|
21
|
+
|
|
22
|
+
Before running any command that requires auth, first verify:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
leaperone auth status
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If the output says "Not authenticated", the user must log in first:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
leaperone auth login
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Alternatively, set an API key as environment variable (skips login):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
export LEAPERONE_API_KEY=sk-...
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Commands
|
|
41
|
+
|
|
42
|
+
### Authentication
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
leaperone auth login # browser-based login
|
|
46
|
+
leaperone auth login --device # device flow (headless environments)
|
|
47
|
+
leaperone auth status # check current auth
|
|
48
|
+
leaperone auth logout # remove stored credentials
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### API Key Management
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
leaperone apikey list # list all keys
|
|
55
|
+
leaperone apikey create -n "<name>" # create a key
|
|
56
|
+
leaperone apikey revoke -n "<name>" # revoke a key
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
IMPORTANT: The created key is shown only once. Always tell the user to save it immediately.
|
|
60
|
+
|
|
61
|
+
### Credits & Usage
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
leaperone credit balance # show balance (paid + gift + total)
|
|
65
|
+
leaperone credit usage # recent 20 usage records
|
|
66
|
+
leaperone credit usage -l 50 # show more records
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If balance is below $0.10, API calls will be rejected.
|
|
70
|
+
|
|
71
|
+
### Endpoints & Documentation
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
leaperone endpoints # list endpoints, models, status, pricing
|
|
75
|
+
leaperone docs list # list doc pages
|
|
76
|
+
leaperone docs read <slug> # read a doc page (e.g. quickstart, guides/chat-completions)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Feedback & Support
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
leaperone feedback create -s "<subject>" -m "<message>" -c <category>
|
|
83
|
+
# categories: bug, suggestion, account, other
|
|
84
|
+
|
|
85
|
+
leaperone feedback list # list tickets
|
|
86
|
+
leaperone feedback view <id> # view a ticket
|
|
87
|
+
leaperone feedback reply <id> -m "<message>" # reply
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Configuration
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
leaperone config show # show current config
|
|
94
|
+
leaperone config set baseUrl <url> # set custom API base URL
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Config file location: `~/.leaperone/config.json`
|
|
98
|
+
|
|
99
|
+
## JSON Output
|
|
100
|
+
|
|
101
|
+
All commands support `--json` for structured output. Use this when you need to parse the result:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
leaperone credit balance --json
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Returns:
|
|
108
|
+
```json
|
|
109
|
+
{"paid": 10.0, "gift": 5.0, "total": 15.0, "giftExpiresAt": "2026-04-01T00:00:00.000Z"}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
leaperone apikey list --json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Returns an array of `{name, keyPreview, createdAt, lastUsedAt, revokedAt}`.
|
|
117
|
+
|
|
118
|
+
## Making API Requests
|
|
119
|
+
|
|
120
|
+
LEAPERone is OpenAI-compatible. The base URL is `https://api.leaper.one/v1`. Use the user's actual API key (from `leaperone apikey create` or `leaperone apikey list`).
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
curl -X POST https://api.leaper.one/v1/chat/completions \
|
|
124
|
+
-H "Authorization: Bearer $LEAPERONE_API_KEY" \
|
|
125
|
+
-H "Content-Type: application/json" \
|
|
126
|
+
-d '{"model": "auto", "messages": [{"role": "user", "content": "Hello!"}]}'
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
from openai import OpenAI
|
|
131
|
+
client = OpenAI(base_url="https://api.leaper.one/v1", api_key="sk-...")
|
|
132
|
+
response = client.chat.completions.create(model="auto", messages=[{"role": "user", "content": "Hello!"}])
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
import OpenAI from "openai";
|
|
137
|
+
const client = new OpenAI({ baseURL: "https://api.leaper.one/v1", apiKey: "sk-..." });
|
|
138
|
+
const response = await client.chat.completions.create({
|
|
139
|
+
model: "auto",
|
|
140
|
+
messages: [{ role: "user", content: "Hello!" }],
|
|
141
|
+
});
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Available Endpoints
|
|
145
|
+
|
|
146
|
+
| Endpoint | Description |
|
|
147
|
+
|----------|-------------|
|
|
148
|
+
| `/v1/chat/completions` | Chat completions (OpenAI-compatible) |
|
|
149
|
+
| `/v1/responses` | Responses API |
|
|
150
|
+
| `/v1/audio/transcriptions` | Audio transcription (Whisper) |
|
|
151
|
+
| `/v1/images/generations` | Image generation |
|
|
152
|
+
| `/v1/embeddings` | Text embeddings |
|
|
153
|
+
|
|
154
|
+
## Error Recovery
|
|
155
|
+
|
|
156
|
+
- **401 Unauthorized** → API key is invalid or expired. Run `leaperone auth status` to check, then `leaperone auth login` or create a new key.
|
|
157
|
+
- **402 / "Insufficient credits"** → Balance below $0.10. User needs to top up at https://leaper.one/dashboard/settings/credit-and-usage.
|
|
158
|
+
- **429 Too Many Requests** → Rate limit hit. Wait and retry, or check tier limits with `leaperone endpoints`.
|
|
159
|
+
- **Model unavailable** → Run `leaperone endpoints` to check which models are currently operational.
|
|
160
|
+
- **Network error / timeout** → Verify `leaperone config show` has the correct baseUrl. Default: `https://api.leaper.one`.
|
|
161
|
+
|
|
162
|
+
## Tips
|
|
163
|
+
|
|
164
|
+
- Use `model: "auto"` for automatic model routing
|
|
165
|
+
- Streaming is supported via `stream: true`
|
|
166
|
+
- Run `leaperone endpoints` for real-time model availability and pricing
|