@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.
Files changed (47) hide show
  1. package/dist/commands/claude.d.ts +13 -0
  2. package/dist/commands/claude.d.ts.map +1 -0
  3. package/dist/commands/claude.js +305 -0
  4. package/dist/commands/claude.js.map +1 -0
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +43 -1
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/docs.d.ts +10 -0
  9. package/dist/commands/docs.d.ts.map +1 -0
  10. package/dist/commands/docs.js +69 -0
  11. package/dist/commands/docs.js.map +1 -0
  12. package/dist/commands/login.d.ts +8 -0
  13. package/dist/commands/login.d.ts.map +1 -1
  14. package/dist/commands/login.js +108 -12
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/skill.d.ts +13 -0
  17. package/dist/commands/skill.d.ts.map +1 -0
  18. package/dist/commands/skill.js +305 -0
  19. package/dist/commands/skill.js.map +1 -0
  20. package/dist/docs/content.d.ts +7 -0
  21. package/dist/docs/content.d.ts.map +1 -0
  22. package/dist/docs/content.js +92 -0
  23. package/dist/docs/content.js.map +1 -0
  24. package/dist/index.js +20 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/api-client.d.ts.map +1 -1
  27. package/dist/lib/api-client.js +4 -1
  28. package/dist/lib/api-client.js.map +1 -1
  29. package/dist/lib/auth.d.ts +20 -7
  30. package/dist/lib/auth.d.ts.map +1 -1
  31. package/dist/lib/auth.js +32 -7
  32. package/dist/lib/auth.js.map +1 -1
  33. package/dist/lib/compiler-stubs.d.ts +15 -0
  34. package/dist/lib/compiler-stubs.d.ts.map +1 -1
  35. package/dist/lib/compiler-stubs.js +21 -0
  36. package/dist/lib/compiler-stubs.js.map +1 -1
  37. package/dist/lib/file-loader.d.ts +55 -0
  38. package/dist/lib/file-loader.d.ts.map +1 -1
  39. package/dist/lib/file-loader.js +153 -3
  40. package/dist/lib/file-loader.js.map +1 -1
  41. package/dist/lib/markdown-renderer.d.ts +8 -0
  42. package/dist/lib/markdown-renderer.d.ts.map +1 -0
  43. package/dist/lib/markdown-renderer.js +151 -0
  44. package/dist/lib/markdown-renderer.js.map +1 -0
  45. package/package.json +8 -3
  46. package/src/skill/SKILL.md +452 -0
  47. package/src/skill/agents/quickback-specialist/AGENT.md +103 -0
@@ -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 CLI token (includes subscription tier)
44
+ // Step 4: Exchange for session token (stored in DB, appears in Manage Devices)
36
45
  pollSpinner.text = 'Completing authentication...';
37
- const cliToken = await exchangeToken(betterAuthToken.access_token);
46
+ const sessionToken = await exchangeToken(betterAuthToken.access_token);
38
47
  pollSpinner.stop();
39
- // Step 5: Store credentials
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: cliToken.access_token,
42
- user: cliToken.user,
43
- expiresAt: new Date(Date.now() + cliToken.expires_in * 1000).toISOString(),
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
- console.log(pc.green('\n✓ Login successful!'));
46
- console.log(pc.gray(`Welcome, ${cliToken.user?.name || cliToken.user?.email || 'user'}!`));
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('Upgrade to Pro for premium templates: https://quickback.dev/pricing'));
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 CLI token with subscription tier
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":"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"}
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,7 @@
1
+ export interface DocEntry {
2
+ title: string;
3
+ content: string;
4
+ }
5
+ export declare const DOCS: Record<string, DocEntry>;
6
+ export declare const TOPIC_LIST: string[];
7
+ //# sourceMappingURL=content.d.ts.map
@@ -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"}