buildpartner 0.3.4 → 0.3.6

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 (57) hide show
  1. package/dist/bin/cli.js +6 -0
  2. package/dist/bin/cli.js.map +1 -1
  3. package/dist/src/api-client.d.ts +13 -9
  4. package/dist/src/api-client.js +14 -31
  5. package/dist/src/api-client.js.map +1 -1
  6. package/dist/src/commands/log-session.d.ts +3 -6
  7. package/dist/src/commands/log-session.js +10 -149
  8. package/dist/src/commands/log-session.js.map +1 -1
  9. package/dist/src/commands/reset.d.ts +1 -0
  10. package/dist/src/commands/reset.js +130 -0
  11. package/dist/src/commands/reset.js.map +1 -0
  12. package/dist/src/commands/setup.js +95 -404
  13. package/dist/src/commands/setup.js.map +1 -1
  14. package/dist/src/commands/sync.d.ts +6 -0
  15. package/dist/src/commands/sync.js +36 -0
  16. package/dist/src/commands/sync.js.map +1 -0
  17. package/dist/src/mcp/catch-up.d.ts +6 -0
  18. package/dist/src/mcp/catch-up.js +28 -0
  19. package/dist/src/mcp/catch-up.js.map +1 -0
  20. package/dist/src/mcp/server.d.ts +13 -0
  21. package/dist/src/mcp/server.js +71 -81
  22. package/dist/src/mcp/server.js.map +1 -1
  23. package/dist/src/mcp/subscription-gate.d.ts +2 -2
  24. package/dist/src/mcp/subscription-gate.js +4 -9
  25. package/dist/src/mcp/subscription-gate.js.map +1 -1
  26. package/dist/src/mcp/tools/get-profile.js +7 -70
  27. package/dist/src/mcp/tools/get-profile.js.map +1 -1
  28. package/dist/src/mcp/tools/get-stats.d.ts +8 -34
  29. package/dist/src/mcp/tools/get-stats.js +7 -97
  30. package/dist/src/mcp/tools/get-stats.js.map +1 -1
  31. package/dist/src/mcp/tools/get-suggestions.js +10 -121
  32. package/dist/src/mcp/tools/get-suggestions.js.map +1 -1
  33. package/dist/src/mcp/tools/log-highlight.d.ts +2 -10
  34. package/dist/src/mcp/tools/log-highlight.js +5 -19
  35. package/dist/src/mcp/tools/log-highlight.js.map +1 -1
  36. package/dist/src/mcp/tools/quest.d.ts +3 -77
  37. package/dist/src/mcp/tools/quest.js +6 -70
  38. package/dist/src/mcp/tools/quest.js.map +1 -1
  39. package/dist/src/readers/extract-signals.d.ts +23 -0
  40. package/dist/src/readers/extract-signals.js +50 -0
  41. package/dist/src/readers/extract-signals.js.map +1 -0
  42. package/dist/src/readers/session-reader.d.ts +0 -14
  43. package/dist/src/readers/session-reader.js +3 -122
  44. package/dist/src/readers/session-reader.js.map +1 -1
  45. package/dist/src/readers/session-sync.d.ts +24 -0
  46. package/dist/src/readers/session-sync.js +114 -0
  47. package/dist/src/readers/session-sync.js.map +1 -0
  48. package/dist/src/store/local-store.d.ts +12 -60
  49. package/dist/src/store/local-store.js +16 -113
  50. package/dist/src/store/local-store.js.map +1 -1
  51. package/dist/src/store/quest-store.d.ts +5 -68
  52. package/dist/src/store/quest-store.js +9 -277
  53. package/dist/src/store/quest-store.js.map +1 -1
  54. package/dist/src/store/status-store.d.ts +5 -68
  55. package/dist/src/store/status-store.js +8 -281
  56. package/dist/src/store/status-store.js.map +1 -1
  57. package/package.json +1 -1
@@ -1,22 +1,16 @@
1
- import { existsSync, readFileSync, writeFileSync } from "fs";
1
+ import { existsSync } from "fs";
2
2
  import { join } from "path";
3
3
  import { homedir } from "os";
4
4
  import chalk from "chalk";
5
5
  import ora from "ora";
6
- import { input, select, confirm } from "@inquirer/prompts";
7
- import { getHistorySummary } from "../readers/history-reader.js";
8
- import { parseAllSessions, extractTooling } from "../readers/session-reader.js";
9
- import { getStatsSummary } from "../readers/stats-reader.js";
10
- import { classifySession } from "../classifiers/activity-classifier.js";
11
- import { detectPath, getPathLabel } from "../classifiers/path-detector.js";
12
- import { writeAuth, writeProfile, readProfile, writeSessions, } from "../store/local-store.js";
6
+ import { input } from "@inquirer/prompts";
7
+ import { scanAllSessions, syncToServer } from "../readers/session-sync.js";
8
+ import { writeAuth, } from "../store/local-store.js";
13
9
  import { installMcp } from "../installer/mcp-installer.js";
14
10
  import { installSkills } from "../installer/skill-installer.js";
15
11
  import { installHook, installPermissions } from "../installer/hook-installer.js";
16
12
  import { API_BASE } from "../api-client.js";
17
13
  import { skillCommand } from "../constants.js";
18
- import { initializeQuests, setEnvironment } from "../store/quest-store.js";
19
- import { initializeStatus } from "../store/status-store.js";
20
14
  const CLAUDE_DIR = join(homedir(), ".claude");
21
15
  const orange = chalk.hex("#E47025");
22
16
  const isInteractive = process.stdin.isTTY === true;
@@ -35,11 +29,14 @@ function detectEnvironment() {
35
29
  }
36
30
  export async function setup() {
37
31
  const token = getTokenArg();
38
- // Header
39
- console.log();
40
- console.log(orange(" ╭─────────────────────────────────────╮\n" +
41
- " │ BuildPartner - Your AI Build Partner │\n" +
42
- " ╰─────────────────────────────────────╯"));
32
+ // Header (only show if not coming from install.sh, which prints its own)
33
+ const fromInstallScript = process.env.BUILDPARTNER_INSTALL === "1";
34
+ if (!fromInstallScript) {
35
+ console.log();
36
+ console.log(orange(" ╭─────────────────────────────────────────╮\n" +
37
+ " │ BuildPartner - Your AI Build Partner │\n" +
38
+ " ╰─────────────────────────────────────────╯"));
39
+ }
43
40
  console.log();
44
41
  // Check Claude Code
45
42
  if (!existsSync(CLAUDE_DIR)) {
@@ -47,25 +44,9 @@ export async function setup() {
47
44
  console.log(" Install Claude Code first: https://claude.ai/code");
48
45
  process.exit(1);
49
46
  }
50
- const historySummary = getHistorySummary();
51
- console.log(chalk.dim(` Found ${historySummary.uniqueSessions} Claude Code sessions.`));
52
47
  console.log();
53
- // Step 1: Quick interview
54
- let answers;
55
- if (isInteractive) {
56
- console.log(chalk.bold(" [1/4] Quick interview"));
57
- console.log(chalk.dim(" Help us personalize your setup.\n"));
58
- answers = await runInterview();
59
- console.log();
60
- }
61
- else {
62
- console.log(chalk.bold(" [1/4] Quick interview"));
63
- console.log(chalk.dim(` Skipped (non-interactive terminal). Run ${skillCommand("interview")} later to personalize.`));
64
- answers = { use_case: "mix", experience: "beginner", goal: "tools" };
65
- console.log();
66
- }
67
- // Step 2: Create account
68
- console.log(chalk.bold(" [2/4] Create your account"));
48
+ // Step 1: Create account
49
+ console.log(chalk.bold(" [1/3] Create your account"));
69
50
  console.log();
70
51
  let email;
71
52
  let username;
@@ -104,34 +85,49 @@ export async function setup() {
104
85
  });
105
86
  }
106
87
  let authToken = `sk_${generateId()}`;
107
- try {
108
- const res = await fetch(`${API_BASE}/api/buildpartner/signup`, {
109
- method: "POST",
110
- headers: { "Content-Type": "application/json" },
111
- body: JSON.stringify({ email, username }),
112
- });
113
- const data = await res.json();
114
- if (res.ok && data.token) {
115
- authToken = data.token;
116
- }
117
- else if (res.status === 409) {
118
- console.log(chalk.yellow(` ! ${data.error || "Account already exists"}`));
119
- console.log(chalk.dim(" Linking to existing account..."));
120
- const verifyRes = await fetch(`${API_BASE}/api/buildpartner/login`, {
88
+ let serverLinked = false;
89
+ for (let attempt = 1; attempt <= 3; attempt++) {
90
+ try {
91
+ const res = await fetch(`${API_BASE}/api/buildpartner/signup`, {
121
92
  method: "POST",
122
93
  headers: { "Content-Type": "application/json" },
123
- body: JSON.stringify({ email }),
94
+ body: JSON.stringify({ email, username }),
95
+ signal: AbortSignal.timeout(10000),
124
96
  });
125
- const verifyData = await verifyRes.json();
126
- if (verifyRes.ok && verifyData.token) {
127
- authToken = verifyData.token;
128
- username = verifyData.username || username;
129
- console.log(chalk.green(` ✓ Linked to existing account: ${username}`));
97
+ const data = await res.json();
98
+ if (res.ok && data.token) {
99
+ authToken = data.token;
100
+ serverLinked = true;
101
+ break;
102
+ }
103
+ else if (res.status === 409) {
104
+ console.log(chalk.yellow(` ! ${data.error || "Account already exists"}`));
105
+ console.log(chalk.dim(" Linking to existing account..."));
106
+ const verifyRes = await fetch(`${API_BASE}/api/buildpartner/login`, {
107
+ method: "POST",
108
+ headers: { "Content-Type": "application/json" },
109
+ body: JSON.stringify({ email }),
110
+ signal: AbortSignal.timeout(10000),
111
+ });
112
+ const verifyData = await verifyRes.json();
113
+ if (verifyRes.ok && verifyData.token) {
114
+ authToken = verifyData.token;
115
+ username = verifyData.username || username;
116
+ serverLinked = true;
117
+ console.log(chalk.green(` ✓ Linked to existing account: ${username}`));
118
+ }
119
+ break; // Don't retry on 409
120
+ }
121
+ // Non-409 error, retry
122
+ }
123
+ catch {
124
+ if (attempt < 3) {
125
+ await new Promise((r) => setTimeout(r, 1000 * attempt));
130
126
  }
131
127
  }
132
128
  }
133
- catch {
134
- // API unavailable, use local token
129
+ if (!serverLinked) {
130
+ console.log(chalk.yellow(" ! Could not reach buildpartner.ai. Your data will sync next time you run a skill."));
135
131
  }
136
132
  writeAuth({
137
133
  email,
@@ -142,8 +138,8 @@ export async function setup() {
142
138
  });
143
139
  console.log(chalk.green(" ✓ Account created"));
144
140
  console.log();
145
- // Step 3: Set up tools
146
- console.log(chalk.bold(" [3/4] Setting up your tools..."));
141
+ // Step 2: Set up tools
142
+ console.log(chalk.bold(" [2/3] Setting up your tools..."));
147
143
  const mcpResult = installMcp();
148
144
  if (mcpResult.alreadyExists) {
149
145
  console.log(chalk.green(" ✓ MCP server (already configured)"));
@@ -181,40 +177,39 @@ export async function setup() {
181
177
  console.log(chalk.green(" ✓ MCP permissions (auto-approved)"));
182
178
  }
183
179
  console.log();
184
- // Step 4: Build profile from history
185
- console.log(chalk.bold(" [4/4] Building your profile..."));
180
+ // Step 3: Build profile from history
181
+ console.log(chalk.bold(" [3/3] Building your profile..."));
182
+ console.log(chalk.dim(" This may take a moment."));
186
183
  // Always backfill from Claude Code history for the freshest data
187
- const spinner = ora(" Classifying sessions...").start();
188
- const result = await backfillSessions();
189
- spinner.stop();
190
- const sessionEntries = result.entries;
191
- const pathLabel = result.pathLabel;
192
- const totalTokens = result.totalTokens;
193
- console.log(chalk.green(` ✓ ${sessionEntries.length} sessions analyzed`));
194
- console.log(chalk.green(` ✓ You're a ${pathLabel}`));
195
- // Store onboarding answers in profile
196
- const currentProfile = readProfile();
197
- if (currentProfile) {
198
- writeProfile({
199
- ...currentProfile,
200
- onboarding: answers,
201
- });
184
+ const spinner = ora(" Scanning sessions...").start();
185
+ const sessionEntries = scanAllSessions();
186
+ spinner.succeed(` ${sessionEntries.length} sessions found`);
187
+ if (serverLinked) {
188
+ const total = sessionEntries.length;
189
+ const syncSpinner = ora(` Syncing sessions... (0/${total})`).start();
190
+ const onProgress = (synced) => {
191
+ syncSpinner.text = ` Syncing sessions... (${synced}/${total})`;
192
+ };
193
+ const { synced, failed } = await syncToServer(sessionEntries, authToken, onProgress);
194
+ if (failed) {
195
+ syncSpinner.warn(` Synced ${synced}/${total} sessions (some failed)`);
196
+ }
197
+ else {
198
+ syncSpinner.succeed(` ${total} sessions synced`);
199
+ }
200
+ }
201
+ else {
202
+ console.log(chalk.dim(" Skipping sync (offline). Sessions will sync on next launch."));
202
203
  }
203
- // Sync to server
204
- await syncSessions(sessionEntries, authToken, username);
205
204
  console.log();
206
- // CLAUDE.md Generator
207
- await offerClaudeMd(sessionEntries);
208
- // Initialize quests and status
209
205
  const env = detectEnvironment();
210
- setEnvironment(env);
211
- initializeQuests();
212
- initializeStatus();
213
- if (env !== "terminal") {
214
- console.log(chalk.dim(` Detected environment: ${env}`));
215
- }
216
- // Build personalized recommendations from session history
217
- const recs = getRecommendations(sessionEntries);
206
+ // Recommendations
207
+ const coachCmd = skillCommand("coach");
208
+ const consultCmd = skillCommand("consult");
209
+ const recs = [
210
+ { reason: "Get a personalized setup review.", prompt: coachCmd },
211
+ { reason: "Ask any question and get expert advice.", prompt: `${consultCmd} What should I build next?` },
212
+ ];
218
213
  // Final output
219
214
  console.log();
220
215
  console.log(orange(" ╭──────────────────────────────────────────────╮\n" +
@@ -227,6 +222,11 @@ export async function setup() {
227
222
  " │ │\n" +
228
223
  " ╰──────────────────────────────────────────────╯"));
229
224
  console.log();
225
+ // Restart notice (only needed if running inside Claude Code, not a standalone terminal)
226
+ if (env !== "terminal") {
227
+ console.log(chalk.bold(" Restart Claude Code to activate your skills and tools."));
228
+ console.log();
229
+ }
230
230
  // Personalized recommendations
231
231
  if (recs.length > 0) {
232
232
  console.log(chalk.bold(" Based on your history, try these in Claude Code:"));
@@ -239,246 +239,16 @@ export async function setup() {
239
239
  }
240
240
  }
241
241
  // Dashboard CTA
242
- const dashUrl = `https://buildpartner.ai/dashboard?t=${authToken}`;
243
- console.log(chalk.bold(" See your full dashboard and personalized quests:\n") +
244
- ` ${chalk.underline(dashUrl)}`);
245
- console.log();
246
- }
247
- async function runInterview() {
248
- const use_case = await select({
249
- message: " What do you mainly use Claude Code for?",
250
- choices: [
251
- { value: "coding", name: "Coding" },
252
- { value: "content", name: "Content creation" },
253
- { value: "research", name: "Research" },
254
- { value: "automation", name: "Automation" },
255
- { value: "mix", name: "A mix of things" },
256
- ],
257
- });
258
- const experience = await select({
259
- message: " What's your experience level with Claude Code?",
260
- choices: [
261
- { value: "beginner", name: "Just started" },
262
- { value: "intermediate", name: "A few months" },
263
- { value: "power-user", name: "Power user" },
264
- ],
265
- });
266
- const goal = await select({
267
- message: " What would help you most?",
268
- choices: [
269
- { value: "tools", name: "Finding the right tools" },
270
- { value: "speed", name: "Building faster" },
271
- { value: "automation", name: "Automating workflows" },
272
- { value: "learning", name: "Learning best practices" },
273
- ],
274
- });
275
- return { use_case, experience, goal };
276
- }
277
- function getRecommendations(sessions) {
278
- // Count activity types and track top projects per type
279
- const counts = {};
280
- const projectsByType = {};
281
- for (const s of sessions) {
282
- counts[s.activity_type] = (counts[s.activity_type] || 0) + 1;
283
- if (!projectsByType[s.activity_type])
284
- projectsByType[s.activity_type] = {};
285
- const proj = s.project.split("/").filter(Boolean).pop() || "project";
286
- projectsByType[s.activity_type][proj] = (projectsByType[s.activity_type][proj] || 0) + 1;
287
- }
288
- // Sort by frequency
289
- const ranked = Object.entries(counts).sort((a, b) => b[1] - a[1]);
290
- // Get the top project for an activity type
291
- function topProject(activity) {
292
- const projects = projectsByType[activity] || {};
293
- const sorted = Object.entries(projects).sort((a, b) => b[1] - a[1]);
294
- return sorted[0]?.[0] || "my project";
295
- }
296
- const consultCmd = skillCommand("consult");
297
- const coachCmd = skillCommand("coach");
298
- // Map activity types to skills with contextual prompts
299
- function buildRec(activity) {
300
- const proj = topProject(activity);
301
- switch (activity) {
302
- case "code":
303
- return {
304
- skill: consultCmd,
305
- prompt: `${consultCmd} I'm building ${proj}. What's the fastest way to validate if people actually want this?`,
306
- reason: `You've been building ${proj}. Get a validation framework.`,
307
- };
308
- case "content":
309
- return {
310
- skill: consultCmd,
311
- prompt: `${consultCmd} I'm creating content about ${proj}. How do I package this so people actually click?`,
312
- reason: `You create content. Get packaging and hook frameworks.`,
313
- };
314
- case "research":
315
- return {
316
- skill: coachCmd,
317
- prompt: coachCmd,
318
- reason: `You do deep research. Get a personalized setup review.`,
319
- };
320
- case "automation":
321
- return {
322
- skill: consultCmd,
323
- prompt: `${consultCmd} I'm automating workflows for ${proj}. How do I turn this into something others can use?`,
324
- reason: `You automate things. Get a distribution plan.`,
325
- };
326
- case "design":
327
- return {
328
- skill: consultCmd,
329
- prompt: `${consultCmd} I'm designing ${proj}. What's the smallest version I should build first?`,
330
- reason: `You spend time planning. Get an MVP framework.`,
331
- };
332
- case "ops":
333
- return {
334
- skill: consultCmd,
335
- prompt: `${consultCmd} I manage infra for ${proj}. What's the best way to launch this?`,
336
- reason: `You manage systems. Get a launch playbook.`,
337
- };
338
- case "data":
339
- return {
340
- skill: consultCmd,
341
- prompt: `${consultCmd} I'm working with data in ${proj}. How do I turn these insights into a product?`,
342
- reason: `You work with data. Get a product framework.`,
343
- };
344
- case "debug":
345
- return {
346
- skill: coachCmd,
347
- prompt: coachCmd,
348
- reason: `You fix a lot of bugs. Get tips to work more efficiently.`,
349
- };
350
- default:
351
- return null;
352
- }
353
- }
354
- const recs = [];
355
- const seen = new Set();
356
- for (const [activity] of ranked) {
357
- const rec = buildRec(activity);
358
- if (rec && !seen.has(rec.skill)) {
359
- recs.push(rec);
360
- seen.add(rec.skill);
361
- }
362
- if (recs.length >= 3)
363
- break;
364
- }
365
- // Fallback
366
- if (recs.length === 0) {
367
- recs.push({
368
- skill: coachCmd,
369
- prompt: `${coachCmd} Review my setup and tell me what to do next.`,
370
- reason: "Get a personalized plan for how to use BuildPartner.",
371
- });
242
+ if (serverLinked) {
243
+ const dashUrl = `https://buildpartner.ai/dashboard?t=${authToken}`;
244
+ console.log(chalk.bold(" See your full dashboard and personalized quests:\n") +
245
+ ` ${chalk.underline(dashUrl)}`);
372
246
  }
373
- return recs;
374
- }
375
- async function backfillSessions() {
376
- const allSessions = parseAllSessions();
377
- const stats = getStatsSummary();
378
- const sessionEntries = [];
379
- const activityTypes = [];
380
- const wsServers = {};
381
- const wsSkills = {};
382
- const wsApps = {};
383
- const wsEditors = {};
384
- const wsTech = {};
385
- for (const session of allSessions) {
386
- const result = classifySession(session);
387
- const tooling = extractTooling(session);
388
- let durationMinutes = 0;
389
- if (session.startTime && session.endTime) {
390
- const ms = new Date(session.endTime).getTime() - new Date(session.startTime).getTime();
391
- durationMinutes = Math.round(ms / 60000);
392
- }
393
- const estimatedTokens = session.toolCalls.length * 1500 + session.userPromptCount * 2000;
394
- sessionEntries.push({
395
- id: crypto.randomUUID(),
396
- timestamp: session.startTime || new Date().toISOString(),
397
- project: session.projectPath,
398
- activity_type: result.activityType,
399
- tokens: estimatedTokens,
400
- duration_minutes: durationMinutes,
401
- prompts: session.userPromptCount,
402
- files_touched: session.filesTouched.slice(0, 20),
403
- summary: session.summary || "",
404
- mcp_servers_used: tooling.mcpServersUsed,
405
- mcp_tool_counts: tooling.mcpToolCounts,
406
- skills_invoked: tooling.skillsInvoked,
407
- tool_counts: tooling.toolCounts,
408
- });
409
- activityTypes.push(result.activityType);
410
- for (const s of tooling.mcpServersUsed)
411
- wsServers[s] = (wsServers[s] || 0) + 1;
412
- for (const s of tooling.skillsInvoked)
413
- wsSkills[s] = (wsSkills[s] || 0) + 1;
414
- for (const a of tooling.appsDetected)
415
- wsApps[a] = (wsApps[a] || 0) + 1;
416
- for (const e of tooling.editorsDetected)
417
- wsEditors[e] = (wsEditors[e] || 0) + 1;
418
- for (const t of tooling.techStack)
419
- wsTech[t] = (wsTech[t] || 0) + 1;
420
- }
421
- writeSessions(sessionEntries);
422
- const pathResult = detectPath(activityTypes);
423
- const pathLabel = pathResult ? getPathLabel(pathResult.path) : "Explorer";
424
- const totalTokens = sessionEntries.reduce((sum, s) => sum + s.tokens, 0);
425
- const streakBest = stats?.bestStreak ?? 0;
426
- const streakCurrent = stats?.currentStreak ?? 0;
427
- writeProfile({
428
- path: pathResult?.path ?? "unknown",
429
- path_scores: pathResult?.scores ?? {},
430
- streak_current: streakCurrent,
431
- streak_best: streakBest,
432
- total_sessions: sessionEntries.length,
433
- total_tokens: totalTokens,
434
- active_since: stats?.firstDate ?? new Date().toISOString().slice(0, 10),
435
- last_session: new Date().toISOString(),
436
- workspace: {
437
- mcp_servers: wsServers,
438
- skills: wsSkills,
439
- apps: wsApps,
440
- editors: wsEditors,
441
- tech_stack: wsTech,
442
- },
443
- });
444
- return { entries: sessionEntries, pathLabel, totalTokens };
445
- }
446
- async function syncSessions(sessions, authToken, username) {
447
- const syncSpinner = ora(" Syncing to buildpartner.ai...").start();
448
- try {
449
- const syncPayload = sessions.map((s) => ({
450
- timestamp: s.timestamp,
451
- activity_type: s.activity_type,
452
- tokens: s.tokens,
453
- duration_minutes: s.duration_minutes,
454
- prompts: s.prompts,
455
- project_name: s.project.split("/").filter(Boolean).pop() || "",
456
- summary: s.summary,
457
- mcp_servers_used: s.mcp_servers_used || [],
458
- skills_invoked: s.skills_invoked || [],
459
- tool_counts: s.tool_counts || {},
460
- }));
461
- const totalBatches = Math.ceil(syncPayload.length / 50);
462
- for (let i = 0; i < syncPayload.length; i += 50) {
463
- const batchNum = Math.floor(i / 50) + 1;
464
- syncSpinner.text = ` Syncing to buildpartner.ai... (${batchNum}/${totalBatches})`;
465
- const batch = syncPayload.slice(i, i + 50);
466
- await fetch(`${API_BASE}/api/buildpartner/sync`, {
467
- method: "POST",
468
- headers: {
469
- "Authorization": `Bearer ${authToken}`,
470
- "Content-Type": "application/json",
471
- },
472
- body: JSON.stringify({ sessions: batch }),
473
- });
474
- }
475
- syncSpinner.stop();
476
- console.log(chalk.green(` ✓ Synced ${sessions.length} sessions`));
477
- }
478
- catch {
479
- syncSpinner.stop();
480
- console.log(chalk.yellow(" ! Could not sync to server"));
247
+ else {
248
+ console.log(chalk.bold(" Your dashboard will be available after your next sync.\n") +
249
+ chalk.dim(" Run any skill (e.g. /stats) to trigger a sync."));
481
250
  }
251
+ console.log();
482
252
  }
483
253
  function getTokenArg() {
484
254
  return getArg("--token");
@@ -496,83 +266,4 @@ function generateId() {
496
266
  function padRight(str, len) {
497
267
  return str.length >= len ? str : str + " ".repeat(len - str.length);
498
268
  }
499
- async function offerClaudeMd(sessions) {
500
- const claudeMdPath = join(homedir(), ".claude", "CLAUDE.md");
501
- if (existsSync(claudeMdPath)) {
502
- // Check if it's large
503
- try {
504
- const content = readFileSync(claudeMdPath, "utf-8");
505
- const lines = content.split("\n").length;
506
- if (lines > 50) {
507
- console.log(chalk.dim(` Your CLAUDE.md has ${lines} lines. Shorter is usually better.`));
508
- }
509
- else {
510
- console.log(chalk.green(" ✓ CLAUDE.md already exists"));
511
- }
512
- }
513
- catch {
514
- // ignore
515
- }
516
- return;
517
- }
518
- // Detect tech stack from sessions
519
- const techSignals = [];
520
- for (const s of sessions) {
521
- const files = s.files_touched || [];
522
- for (const f of files) {
523
- if (f.endsWith(".ts") || f.endsWith(".tsx"))
524
- techSignals.push("TypeScript");
525
- if (f.endsWith(".py"))
526
- techSignals.push("Python");
527
- if (f.endsWith(".go"))
528
- techSignals.push("Go");
529
- if (f.endsWith(".rs"))
530
- techSignals.push("Rust");
531
- if (f.includes("next.config") || f.includes("next/"))
532
- techSignals.push("Next.js");
533
- if (f.includes("tailwind"))
534
- techSignals.push("Tailwind");
535
- }
536
- }
537
- const techCounts = {};
538
- for (const t of techSignals)
539
- techCounts[t] = (techCounts[t] || 0) + 1;
540
- const topTech = Object.entries(techCounts)
541
- .sort((a, b) => b[1] - a[1])
542
- .slice(0, 3)
543
- .map(([t]) => t);
544
- console.log(chalk.bold(" Optional: Create a starter CLAUDE.md?"));
545
- console.log();
546
- if (topTech.length > 0) {
547
- console.log(chalk.dim(` Detected stack: ${topTech.join(", ")}`));
548
- }
549
- console.log(chalk.dim(" This gives Claude persistent instructions across all sessions."));
550
- console.log();
551
- let shouldCreate = true;
552
- if (isInteractive) {
553
- shouldCreate = await confirm({
554
- message: " Create a starter CLAUDE.md?",
555
- default: true,
556
- });
557
- }
558
- else {
559
- console.log(chalk.dim(" Auto-creating CLAUDE.md (non-interactive mode)."));
560
- }
561
- if (!shouldCreate) {
562
- console.log(chalk.dim(" Skipped. You can create one anytime."));
563
- return;
564
- }
565
- const lines = ["# CLAUDE.md", ""];
566
- lines.push("Before doing any work, explain how you will verify that work.");
567
- if (topTech.length > 0) {
568
- lines.push(`When writing ${topTech[0]}, use the project's existing patterns and conventions.`);
569
- }
570
- lines.push("Before building anything new, ask what \"done\" looks like.");
571
- lines.push("");
572
- const content = lines.join("\n");
573
- writeFileSync(claudeMdPath, content);
574
- console.log(chalk.green(` ✓ Created ~/.claude/CLAUDE.md (${lines.filter(l => l.trim()).length} rules)`));
575
- console.log(chalk.dim(" Tip: less is more. Only add rules when Claude makes a mistake you want to prevent."));
576
- console.log();
577
- }
578
269
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Re-sync all local sessions to the server.
3
+ * Useful when the initial setup sync failed or was incomplete.
4
+ * The server deduplicates, so running this multiple times is safe.
5
+ */
6
+ export declare function sync(): Promise<void>;