@kardoe/quickback 0.4.1 → 0.4.3
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/claude.d.ts +13 -0
- package/dist/commands/claude.d.ts.map +1 -0
- package/dist/commands/claude.js +305 -0
- package/dist/commands/claude.js.map +1 -0
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +43 -1
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/docs.d.ts +10 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +69 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/login.d.ts +8 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +108 -12
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/skill.d.ts +13 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +305 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/docs/content.d.ts +7 -0
- package/dist/docs/content.d.ts.map +1 -0
- package/dist/docs/content.js +92 -0
- package/dist/docs/content.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +4 -1
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/auth.d.ts +20 -7
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +32 -7
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/compiler-stubs.d.ts +15 -0
- package/dist/lib/compiler-stubs.d.ts.map +1 -1
- package/dist/lib/compiler-stubs.js +21 -0
- package/dist/lib/compiler-stubs.js.map +1 -1
- package/dist/lib/file-loader.d.ts +55 -0
- package/dist/lib/file-loader.d.ts.map +1 -1
- package/dist/lib/file-loader.js +153 -3
- package/dist/lib/file-loader.js.map +1 -1
- package/dist/lib/markdown-renderer.d.ts +8 -0
- package/dist/lib/markdown-renderer.d.ts.map +1 -0
- package/dist/lib/markdown-renderer.js +151 -0
- package/dist/lib/markdown-renderer.js.map +1 -0
- package/package.json +8 -3
- package/src/skill/SKILL.md +452 -0
- package/src/skill/agents/quickback-specialist/AGENT.md +103 -0
package/dist/commands/login.js
CHANGED
|
@@ -3,10 +3,19 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Uses OAuth 2.0 Device Authorization Grant (RFC 8628) for CLI authentication.
|
|
5
5
|
* Works in headless environments (SSH, containers) and is more secure than URL-based tokens.
|
|
6
|
+
*
|
|
7
|
+
* After authentication, the CLI:
|
|
8
|
+
* 1. Lists user's organizations
|
|
9
|
+
* 2. Prompts to select one (or auto-selects if only one)
|
|
10
|
+
* 3. Sets the active organization on the session
|
|
11
|
+
*
|
|
12
|
+
* The session is stored in Better Auth's sessions table and appears
|
|
13
|
+
* in the Manage Devices page where users can revoke it.
|
|
6
14
|
*/
|
|
7
15
|
import { exec } from 'child_process';
|
|
8
16
|
import pc from 'picocolors';
|
|
9
17
|
import ora from 'ora';
|
|
18
|
+
import prompts from 'prompts';
|
|
10
19
|
import { storeCredentials } from '../lib/auth.js';
|
|
11
20
|
const AUTH_URL = process.env.QUICKBACK_AUTH_URL || 'https://api.quickback.dev';
|
|
12
21
|
const CLIENT_ID = 'quickback-cli';
|
|
@@ -32,23 +41,71 @@ export async function login() {
|
|
|
32
41
|
// Step 3: Poll for Better Auth token
|
|
33
42
|
const pollSpinner = ora('Waiting for authorization...').start();
|
|
34
43
|
const betterAuthToken = await pollForToken(deviceCode.device_code, deviceCode.interval);
|
|
35
|
-
// Step 4: Exchange for
|
|
44
|
+
// Step 4: Exchange for session token (stored in DB, appears in Manage Devices)
|
|
36
45
|
pollSpinner.text = 'Completing authentication...';
|
|
37
|
-
const
|
|
46
|
+
const sessionToken = await exchangeToken(betterAuthToken.access_token);
|
|
38
47
|
pollSpinner.stop();
|
|
39
|
-
|
|
48
|
+
console.log(pc.green('\n✓ Login successful!'));
|
|
49
|
+
console.log(pc.gray(`Welcome, ${sessionToken.user?.name || sessionToken.user?.email || 'user'}!`));
|
|
50
|
+
// Step 5: List and select organization
|
|
51
|
+
let activeOrganization;
|
|
52
|
+
const orgSpinner = ora('Loading organizations...').start();
|
|
53
|
+
try {
|
|
54
|
+
const organizations = await listOrganizations(sessionToken.access_token);
|
|
55
|
+
orgSpinner.stop();
|
|
56
|
+
if (organizations.length > 0) {
|
|
57
|
+
if (organizations.length === 1) {
|
|
58
|
+
// Auto-select if only one organization
|
|
59
|
+
activeOrganization = organizations[0];
|
|
60
|
+
console.log(pc.gray(`\nUsing organization: ${pc.bold(activeOrganization.name)}`));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Prompt user to select
|
|
64
|
+
console.log();
|
|
65
|
+
const response = await prompts({
|
|
66
|
+
type: 'select',
|
|
67
|
+
name: 'organization',
|
|
68
|
+
message: 'Select an organization:',
|
|
69
|
+
choices: organizations.map(org => ({
|
|
70
|
+
title: org.name,
|
|
71
|
+
description: org.slug,
|
|
72
|
+
value: org,
|
|
73
|
+
})),
|
|
74
|
+
});
|
|
75
|
+
if (response.organization) {
|
|
76
|
+
activeOrganization = response.organization;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Set active organization on the session
|
|
80
|
+
if (activeOrganization) {
|
|
81
|
+
const setOrgSpinner = ora('Setting active organization...').start();
|
|
82
|
+
await setActiveOrganization(sessionToken.access_token, activeOrganization.id);
|
|
83
|
+
setOrgSpinner.stop();
|
|
84
|
+
console.log(pc.green(`✓ Active organization: ${activeOrganization.name}`));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (orgError) {
|
|
89
|
+
orgSpinner.stop();
|
|
90
|
+
// Don't fail login if org listing fails - user can still use CLI
|
|
91
|
+
console.log(pc.yellow('\nCould not load organizations. You can set one later with: quickback org use <slug>'));
|
|
92
|
+
}
|
|
93
|
+
// Step 6: Store credentials with organization info
|
|
40
94
|
await storeCredentials({
|
|
41
|
-
token:
|
|
42
|
-
user:
|
|
43
|
-
expiresAt: new Date(Date.now() +
|
|
95
|
+
token: sessionToken.access_token,
|
|
96
|
+
user: sessionToken.user,
|
|
97
|
+
expiresAt: sessionToken.session?.expiresAt || new Date(Date.now() + sessionToken.expires_in * 1000).toISOString(),
|
|
98
|
+
organization: activeOrganization ? {
|
|
99
|
+
id: activeOrganization.id,
|
|
100
|
+
name: activeOrganization.name,
|
|
101
|
+
slug: activeOrganization.slug,
|
|
102
|
+
} : undefined,
|
|
44
103
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (cliToken.user?.tier === 'pro') {
|
|
48
|
-
console.log(pc.cyan('You have access to Pro templates.'));
|
|
104
|
+
if (sessionToken.user?.tier === 'pro') {
|
|
105
|
+
console.log(pc.cyan('\nYou have access to Pro templates.'));
|
|
49
106
|
}
|
|
50
107
|
else {
|
|
51
|
-
console.log(pc.gray('
|
|
108
|
+
console.log(pc.gray('\nUpgrade to Pro for premium templates: https://quickback.dev/pricing'));
|
|
52
109
|
}
|
|
53
110
|
console.log();
|
|
54
111
|
}
|
|
@@ -145,7 +202,10 @@ async function pollForToken(deviceCode, interval) {
|
|
|
145
202
|
});
|
|
146
203
|
}
|
|
147
204
|
/**
|
|
148
|
-
* Exchange Better Auth access token for
|
|
205
|
+
* Exchange Better Auth access token for session info
|
|
206
|
+
*
|
|
207
|
+
* The device authorization flow creates a session in the database.
|
|
208
|
+
* This endpoint returns that session token so it appears in Manage Devices.
|
|
149
209
|
*/
|
|
150
210
|
async function exchangeToken(accessToken) {
|
|
151
211
|
const response = await fetch(`${AUTH_URL}/cli/exchange`, {
|
|
@@ -162,6 +222,42 @@ async function exchangeToken(accessToken) {
|
|
|
162
222
|
}
|
|
163
223
|
return response.json();
|
|
164
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* List user's organizations
|
|
227
|
+
*/
|
|
228
|
+
async function listOrganizations(sessionToken) {
|
|
229
|
+
const response = await fetch(`${AUTH_URL}/auth/v1/organization/list`, {
|
|
230
|
+
method: 'GET',
|
|
231
|
+
headers: {
|
|
232
|
+
'Authorization': `Bearer ${sessionToken}`,
|
|
233
|
+
'Content-Type': 'application/json',
|
|
234
|
+
'User-Agent': 'quickback-cli',
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
if (!response.ok) {
|
|
238
|
+
throw new Error('Failed to list organizations');
|
|
239
|
+
}
|
|
240
|
+
const data = await response.json();
|
|
241
|
+
return data.organizations || [];
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Set the active organization for the session
|
|
245
|
+
*/
|
|
246
|
+
async function setActiveOrganization(sessionToken, organizationId) {
|
|
247
|
+
const response = await fetch(`${AUTH_URL}/auth/v1/organization/set-active`, {
|
|
248
|
+
method: 'POST',
|
|
249
|
+
headers: {
|
|
250
|
+
'Authorization': `Bearer ${sessionToken}`,
|
|
251
|
+
'Content-Type': 'application/json',
|
|
252
|
+
'User-Agent': 'quickback-cli',
|
|
253
|
+
},
|
|
254
|
+
body: JSON.stringify({ organizationId }),
|
|
255
|
+
});
|
|
256
|
+
if (!response.ok) {
|
|
257
|
+
const error = await response.json().catch(() => ({}));
|
|
258
|
+
throw new Error(error.message || 'Failed to set active organization');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
165
261
|
/**
|
|
166
262
|
* Format user code with dash for readability (e.g., ABCD-1234)
|
|
167
263
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill command - manage Claude Code skill installation
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* quickback skill install # Interactive: choose global or local
|
|
6
|
+
* quickback skill install --global # Install to ~/.claude/skills/quickback/
|
|
7
|
+
* quickback skill install --local # Install to ./quickback/.claude/skills/quickback/
|
|
8
|
+
* quickback skill update # Update to latest version
|
|
9
|
+
* quickback skill remove # Remove installed skill
|
|
10
|
+
* quickback skill status # Check installation status
|
|
11
|
+
*/
|
|
12
|
+
export declare function skill(args: string[]): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+TH,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BzD"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill command - manage Claude Code skill installation
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* quickback skill install # Interactive: choose global or local
|
|
6
|
+
* quickback skill install --global # Install to ~/.claude/skills/quickback/
|
|
7
|
+
* quickback skill install --local # Install to ./quickback/.claude/skills/quickback/
|
|
8
|
+
* quickback skill update # Update to latest version
|
|
9
|
+
* quickback skill remove # Remove installed skill
|
|
10
|
+
* quickback skill status # Check installation status
|
|
11
|
+
*/
|
|
12
|
+
import { copyFileSync, mkdirSync, existsSync, rmSync, readdirSync, statSync } from "fs";
|
|
13
|
+
import { join, dirname } from "path";
|
|
14
|
+
import { homedir } from "os";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
import pc from "picocolors";
|
|
17
|
+
import prompts from "prompts";
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = dirname(__filename);
|
|
20
|
+
// Paths
|
|
21
|
+
const SKILL_BUNDLE = join(__dirname, "..", "skill");
|
|
22
|
+
const GLOBAL_SKILLS_DIR = join(homedir(), ".claude", "skills", "quickback");
|
|
23
|
+
const GLOBAL_AGENTS_DIR = join(homedir(), ".claude", "agents", "quickback-specialist");
|
|
24
|
+
const LOCAL_SKILLS_DIR = join(process.cwd(), "quickback", ".claude", "skills", "quickback");
|
|
25
|
+
const LOCAL_AGENTS_DIR = join(process.cwd(), "quickback", ".claude", "agents", "quickback-specialist");
|
|
26
|
+
function getLocations() {
|
|
27
|
+
return {
|
|
28
|
+
global: {
|
|
29
|
+
skillDir: GLOBAL_SKILLS_DIR,
|
|
30
|
+
agentDir: GLOBAL_AGENTS_DIR,
|
|
31
|
+
label: "global (~/.claude/)",
|
|
32
|
+
},
|
|
33
|
+
local: {
|
|
34
|
+
skillDir: LOCAL_SKILLS_DIR,
|
|
35
|
+
agentDir: LOCAL_AGENTS_DIR,
|
|
36
|
+
label: "local (./quickback/.claude/)",
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function copyDir(src, dest) {
|
|
41
|
+
if (!existsSync(dest)) {
|
|
42
|
+
mkdirSync(dest, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
const entries = readdirSync(src);
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
const srcPath = join(src, entry);
|
|
47
|
+
const destPath = join(dest, entry);
|
|
48
|
+
if (statSync(srcPath).isDirectory()) {
|
|
49
|
+
copyDir(srcPath, destPath);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
copyFileSync(srcPath, destPath);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function checkBundledSkill() {
|
|
57
|
+
const skillMd = join(SKILL_BUNDLE, "SKILL.md");
|
|
58
|
+
if (!existsSync(skillMd)) {
|
|
59
|
+
console.log(pc.red("\nSkill files not found in CLI bundle."));
|
|
60
|
+
console.log(pc.dim("This may indicate an incomplete CLI installation."));
|
|
61
|
+
console.log(pc.dim("Try reinstalling: npm install -g @kardoe/quickback\n"));
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
function installTo(location) {
|
|
67
|
+
const { skillDir, agentDir, label } = location;
|
|
68
|
+
// Install SKILL.md
|
|
69
|
+
mkdirSync(skillDir, { recursive: true });
|
|
70
|
+
const skillMdSrc = join(SKILL_BUNDLE, "SKILL.md");
|
|
71
|
+
const skillMdDest = join(skillDir, "SKILL.md");
|
|
72
|
+
copyFileSync(skillMdSrc, skillMdDest);
|
|
73
|
+
console.log(pc.green(` ✓ SKILL.md → ${skillDir}`));
|
|
74
|
+
// Install agents
|
|
75
|
+
const agentsSrc = join(SKILL_BUNDLE, "agents", "quickback-specialist");
|
|
76
|
+
if (existsSync(agentsSrc)) {
|
|
77
|
+
mkdirSync(agentDir, { recursive: true });
|
|
78
|
+
copyDir(agentsSrc, agentDir);
|
|
79
|
+
console.log(pc.green(` ✓ AGENT.md → ${agentDir}`));
|
|
80
|
+
}
|
|
81
|
+
console.log("");
|
|
82
|
+
console.log(pc.green(`✓ Quickback skill installed to ${label}`));
|
|
83
|
+
console.log("");
|
|
84
|
+
console.log(pc.bold("Restart Claude Code to activate the skill."));
|
|
85
|
+
console.log(pc.dim("The skill will automatically activate when working in Quickback projects.\n"));
|
|
86
|
+
}
|
|
87
|
+
function removeFrom(location) {
|
|
88
|
+
const { skillDir, agentDir, label } = location;
|
|
89
|
+
let removed = false;
|
|
90
|
+
if (existsSync(skillDir)) {
|
|
91
|
+
rmSync(skillDir, { recursive: true, force: true });
|
|
92
|
+
console.log(pc.yellow(` ✓ Removed ${skillDir}`));
|
|
93
|
+
removed = true;
|
|
94
|
+
}
|
|
95
|
+
if (existsSync(agentDir)) {
|
|
96
|
+
rmSync(agentDir, { recursive: true, force: true });
|
|
97
|
+
console.log(pc.yellow(` ✓ Removed ${agentDir}`));
|
|
98
|
+
removed = true;
|
|
99
|
+
}
|
|
100
|
+
return removed;
|
|
101
|
+
}
|
|
102
|
+
function checkInstallation() {
|
|
103
|
+
const locations = getLocations();
|
|
104
|
+
return {
|
|
105
|
+
global: existsSync(join(locations.global.skillDir, "SKILL.md")),
|
|
106
|
+
local: existsSync(join(locations.local.skillDir, "SKILL.md")),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
async function install(args) {
|
|
110
|
+
if (!checkBundledSkill()) {
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
const locations = getLocations();
|
|
114
|
+
const installed = checkInstallation();
|
|
115
|
+
// Check for flags
|
|
116
|
+
const isGlobal = args.includes("--global") || args.includes("-g");
|
|
117
|
+
const isLocal = args.includes("--local") || args.includes("-l");
|
|
118
|
+
let targetLocation;
|
|
119
|
+
if (isGlobal) {
|
|
120
|
+
targetLocation = locations.global;
|
|
121
|
+
}
|
|
122
|
+
else if (isLocal) {
|
|
123
|
+
targetLocation = locations.local;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Interactive prompt
|
|
127
|
+
console.log("");
|
|
128
|
+
console.log(pc.bold("Install Quickback Skill for Claude Code"));
|
|
129
|
+
console.log("");
|
|
130
|
+
if (installed.global) {
|
|
131
|
+
console.log(pc.dim(` Global installation: ${pc.green("installed")}`));
|
|
132
|
+
}
|
|
133
|
+
if (installed.local) {
|
|
134
|
+
console.log(pc.dim(` Local installation: ${pc.green("installed")}`));
|
|
135
|
+
}
|
|
136
|
+
if (installed.global || installed.local) {
|
|
137
|
+
console.log("");
|
|
138
|
+
}
|
|
139
|
+
const response = await prompts({
|
|
140
|
+
type: "select",
|
|
141
|
+
name: "location",
|
|
142
|
+
message: "Where should the skill be installed?",
|
|
143
|
+
choices: [
|
|
144
|
+
{
|
|
145
|
+
title: "Global (recommended)",
|
|
146
|
+
description: "Available in all projects (~/.claude/skills/)",
|
|
147
|
+
value: "global",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
title: "Local",
|
|
151
|
+
description: "Only this project (./quickback/.claude/)",
|
|
152
|
+
value: "local",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
});
|
|
156
|
+
if (!response.location) {
|
|
157
|
+
console.log(pc.dim("\nInstallation cancelled.\n"));
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
targetLocation = response.location === "global" ? locations.global : locations.local;
|
|
161
|
+
}
|
|
162
|
+
// Check for existing installation
|
|
163
|
+
const existingSkill = existsSync(join(targetLocation.skillDir, "SKILL.md"));
|
|
164
|
+
if (existingSkill) {
|
|
165
|
+
const response = await prompts({
|
|
166
|
+
type: "confirm",
|
|
167
|
+
name: "overwrite",
|
|
168
|
+
message: `Skill already installed at ${targetLocation.label}. Overwrite?`,
|
|
169
|
+
initial: true,
|
|
170
|
+
});
|
|
171
|
+
if (!response.overwrite) {
|
|
172
|
+
console.log(pc.dim("\nInstallation cancelled.\n"));
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
console.log("");
|
|
177
|
+
installTo(targetLocation);
|
|
178
|
+
}
|
|
179
|
+
async function update(args) {
|
|
180
|
+
if (!checkBundledSkill()) {
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
const locations = getLocations();
|
|
184
|
+
const installed = checkInstallation();
|
|
185
|
+
if (!installed.global && !installed.local) {
|
|
186
|
+
console.log(pc.yellow("\nNo existing installation found."));
|
|
187
|
+
console.log(pc.dim("Run 'quickback skill install' to install.\n"));
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
console.log("");
|
|
191
|
+
console.log(pc.bold("Updating Quickback Skill"));
|
|
192
|
+
console.log("");
|
|
193
|
+
if (installed.global) {
|
|
194
|
+
installTo(locations.global);
|
|
195
|
+
}
|
|
196
|
+
if (installed.local) {
|
|
197
|
+
installTo(locations.local);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async function remove(args) {
|
|
201
|
+
const locations = getLocations();
|
|
202
|
+
const installed = checkInstallation();
|
|
203
|
+
if (!installed.global && !installed.local) {
|
|
204
|
+
console.log(pc.yellow("\nNo installation found to remove.\n"));
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
console.log("");
|
|
208
|
+
console.log(pc.bold("Remove Quickback Skill"));
|
|
209
|
+
console.log("");
|
|
210
|
+
let removed = false;
|
|
211
|
+
if (installed.global) {
|
|
212
|
+
removed = removeFrom(locations.global) || removed;
|
|
213
|
+
}
|
|
214
|
+
if (installed.local) {
|
|
215
|
+
removed = removeFrom(locations.local) || removed;
|
|
216
|
+
}
|
|
217
|
+
if (removed) {
|
|
218
|
+
console.log("");
|
|
219
|
+
console.log(pc.green("✓ Quickback skill removed."));
|
|
220
|
+
console.log(pc.dim("Restart Claude Code to complete removal.\n"));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
async function status() {
|
|
224
|
+
const installed = checkInstallation();
|
|
225
|
+
const locations = getLocations();
|
|
226
|
+
console.log("");
|
|
227
|
+
console.log(pc.bold("Quickback Skill Status"));
|
|
228
|
+
console.log("");
|
|
229
|
+
if (installed.global) {
|
|
230
|
+
console.log(` ${pc.green("●")} Global: ${pc.green("installed")}`);
|
|
231
|
+
console.log(pc.dim(` ${locations.global.skillDir}`));
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
console.log(` ${pc.dim("○")} Global: ${pc.dim("not installed")}`);
|
|
235
|
+
}
|
|
236
|
+
console.log("");
|
|
237
|
+
if (installed.local) {
|
|
238
|
+
console.log(` ${pc.green("●")} Local: ${pc.green("installed")}`);
|
|
239
|
+
console.log(pc.dim(` ${locations.local.skillDir}`));
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
console.log(` ${pc.dim("○")} Local: ${pc.dim("not installed")}`);
|
|
243
|
+
}
|
|
244
|
+
console.log("");
|
|
245
|
+
if (!installed.global && !installed.local) {
|
|
246
|
+
console.log(pc.dim("Run 'quickback skill install' to install the skill.\n"));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function printHelp() {
|
|
250
|
+
console.log(`
|
|
251
|
+
${pc.bold("Quickback Skill Management")}
|
|
252
|
+
|
|
253
|
+
${pc.bold("USAGE")}
|
|
254
|
+
quickback skill <command> [options]
|
|
255
|
+
|
|
256
|
+
${pc.bold("COMMANDS")}
|
|
257
|
+
${pc.cyan("install")} Install the Claude Code skill
|
|
258
|
+
${pc.cyan("update")} Update to the latest version
|
|
259
|
+
${pc.cyan("remove")} Remove the installed skill
|
|
260
|
+
${pc.cyan("status")} Check installation status
|
|
261
|
+
|
|
262
|
+
${pc.bold("OPTIONS")}
|
|
263
|
+
${pc.cyan("--global, -g")} Install to ~/.claude/skills/ (all projects)
|
|
264
|
+
${pc.cyan("--local, -l")} Install to ./quickback/.claude/ (this project)
|
|
265
|
+
|
|
266
|
+
${pc.bold("EXAMPLES")}
|
|
267
|
+
${pc.gray("# Interactive installation")}
|
|
268
|
+
quickback skill install
|
|
269
|
+
|
|
270
|
+
${pc.gray("# Install globally")}
|
|
271
|
+
quickback skill install --global
|
|
272
|
+
|
|
273
|
+
${pc.gray("# Check status")}
|
|
274
|
+
quickback skill status
|
|
275
|
+
`);
|
|
276
|
+
}
|
|
277
|
+
export async function skill(args) {
|
|
278
|
+
const subcommand = args[0];
|
|
279
|
+
const subArgs = args.slice(1);
|
|
280
|
+
switch (subcommand) {
|
|
281
|
+
case "install":
|
|
282
|
+
await install(subArgs);
|
|
283
|
+
break;
|
|
284
|
+
case "update":
|
|
285
|
+
await update(subArgs);
|
|
286
|
+
break;
|
|
287
|
+
case "remove":
|
|
288
|
+
case "uninstall":
|
|
289
|
+
await remove(subArgs);
|
|
290
|
+
break;
|
|
291
|
+
case "status":
|
|
292
|
+
await status();
|
|
293
|
+
break;
|
|
294
|
+
case "--help":
|
|
295
|
+
case "-h":
|
|
296
|
+
case undefined:
|
|
297
|
+
printHelp();
|
|
298
|
+
break;
|
|
299
|
+
default:
|
|
300
|
+
console.log(pc.red(`\nUnknown subcommand: ${subcommand}`));
|
|
301
|
+
printHelp();
|
|
302
|
+
process.exit(1);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/docs/content.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAqEzC,CAAC;AAEF,eAAO,MAAM,UAAU,UAkBtB,CAAC"}
|