buildpartner 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +83 -398
  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 +32 -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 +113 -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;
@@ -47,25 +41,9 @@ export async function setup() {
47
41
  console.log(" Install Claude Code first: https://claude.ai/code");
48
42
  process.exit(1);
49
43
  }
50
- const historySummary = getHistorySummary();
51
- console.log(chalk.dim(` Found ${historySummary.uniqueSessions} Claude Code sessions.`));
52
44
  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"));
45
+ // Step 1: Create account
46
+ console.log(chalk.bold(" [1/3] Create your account"));
69
47
  console.log();
70
48
  let email;
71
49
  let username;
@@ -104,34 +82,49 @@ export async function setup() {
104
82
  });
105
83
  }
106
84
  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`, {
85
+ let serverLinked = false;
86
+ for (let attempt = 1; attempt <= 3; attempt++) {
87
+ try {
88
+ const res = await fetch(`${API_BASE}/api/buildpartner/signup`, {
121
89
  method: "POST",
122
90
  headers: { "Content-Type": "application/json" },
123
- body: JSON.stringify({ email }),
91
+ body: JSON.stringify({ email, username }),
92
+ signal: AbortSignal.timeout(10000),
124
93
  });
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}`));
94
+ const data = await res.json();
95
+ if (res.ok && data.token) {
96
+ authToken = data.token;
97
+ serverLinked = true;
98
+ break;
99
+ }
100
+ else if (res.status === 409) {
101
+ console.log(chalk.yellow(` ! ${data.error || "Account already exists"}`));
102
+ console.log(chalk.dim(" Linking to existing account..."));
103
+ const verifyRes = await fetch(`${API_BASE}/api/buildpartner/login`, {
104
+ method: "POST",
105
+ headers: { "Content-Type": "application/json" },
106
+ body: JSON.stringify({ email }),
107
+ signal: AbortSignal.timeout(10000),
108
+ });
109
+ const verifyData = await verifyRes.json();
110
+ if (verifyRes.ok && verifyData.token) {
111
+ authToken = verifyData.token;
112
+ username = verifyData.username || username;
113
+ serverLinked = true;
114
+ console.log(chalk.green(` ✓ Linked to existing account: ${username}`));
115
+ }
116
+ break; // Don't retry on 409
117
+ }
118
+ // Non-409 error, retry
119
+ }
120
+ catch {
121
+ if (attempt < 3) {
122
+ await new Promise((r) => setTimeout(r, 1000 * attempt));
130
123
  }
131
124
  }
132
125
  }
133
- catch {
134
- // API unavailable, use local token
126
+ if (!serverLinked) {
127
+ console.log(chalk.yellow(" ! Could not reach buildpartner.ai. Your data will sync next time you run a skill."));
135
128
  }
136
129
  writeAuth({
137
130
  email,
@@ -142,8 +135,8 @@ export async function setup() {
142
135
  });
143
136
  console.log(chalk.green(" ✓ Account created"));
144
137
  console.log();
145
- // Step 3: Set up tools
146
- console.log(chalk.bold(" [3/4] Setting up your tools..."));
138
+ // Step 2: Set up tools
139
+ console.log(chalk.bold(" [2/3] Setting up your tools..."));
147
140
  const mcpResult = installMcp();
148
141
  if (mcpResult.alreadyExists) {
149
142
  console.log(chalk.green(" ✓ MCP server (already configured)"));
@@ -181,40 +174,36 @@ export async function setup() {
181
174
  console.log(chalk.green(" ✓ MCP permissions (auto-approved)"));
182
175
  }
183
176
  console.log();
184
- // Step 4: Build profile from history
185
- console.log(chalk.bold(" [4/4] Building your profile..."));
177
+ // Step 3: Build profile from history
178
+ console.log(chalk.bold(" [3/3] Building your profile..."));
186
179
  // Always backfill from Claude Code history for the freshest data
187
- const spinner = ora(" Classifying sessions...").start();
188
- const result = await backfillSessions();
180
+ const spinner = ora(" Scanning sessions...").start();
181
+ const sessionEntries = scanAllSessions();
189
182
  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
- });
183
+ console.log(chalk.green(` ✓ ${sessionEntries.length} sessions found`));
184
+ if (serverLinked) {
185
+ const syncSpinner = ora(" Syncing to buildpartner.ai...").start();
186
+ const { synced, failed } = await syncToServer(sessionEntries, authToken);
187
+ syncSpinner.stop();
188
+ if (failed) {
189
+ console.log(chalk.yellow(` ! Synced ${synced}/${sessionEntries.length} sessions (some failed)`));
190
+ }
191
+ else {
192
+ console.log(chalk.green(` ✓ Synced ${sessionEntries.length} sessions`));
193
+ }
194
+ }
195
+ else {
196
+ console.log(chalk.dim(" Skipping sync (offline). Sessions will sync on next launch."));
202
197
  }
203
- // Sync to server
204
- await syncSessions(sessionEntries, authToken, username);
205
198
  console.log();
206
- // CLAUDE.md Generator
207
- await offerClaudeMd(sessionEntries);
208
- // Initialize quests and status
209
199
  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);
200
+ // Recommendations
201
+ const coachCmd = skillCommand("coach");
202
+ const consultCmd = skillCommand("consult");
203
+ const recs = [
204
+ { reason: "Get a personalized setup review.", prompt: coachCmd },
205
+ { reason: "Ask any question and get expert advice.", prompt: `${consultCmd} What should I build next?` },
206
+ ];
218
207
  // Final output
219
208
  console.log();
220
209
  console.log(orange(" ╭──────────────────────────────────────────────╮\n" +
@@ -227,6 +216,11 @@ export async function setup() {
227
216
  " │ │\n" +
228
217
  " ╰──────────────────────────────────────────────╯"));
229
218
  console.log();
219
+ // Restart notice (only needed if running inside Claude Code, not a standalone terminal)
220
+ if (env !== "terminal") {
221
+ console.log(chalk.bold(" Restart Claude Code to activate your skills and tools."));
222
+ console.log();
223
+ }
230
224
  // Personalized recommendations
231
225
  if (recs.length > 0) {
232
226
  console.log(chalk.bold(" Based on your history, try these in Claude Code:"));
@@ -239,246 +233,16 @@ export async function setup() {
239
233
  }
240
234
  }
241
235
  // 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
- });
372
- }
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;
236
+ if (serverLinked) {
237
+ const dashUrl = `https://buildpartner.ai/dashboard?t=${authToken}`;
238
+ console.log(chalk.bold(" See your full dashboard and personalized quests:\n") +
239
+ ` ${chalk.underline(dashUrl)}`);
420
240
  }
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"));
241
+ else {
242
+ console.log(chalk.bold(" Your dashboard will be available after your next sync.\n") +
243
+ chalk.dim(" Run any skill (e.g. /stats) to trigger a sync."));
481
244
  }
245
+ console.log();
482
246
  }
483
247
  function getTokenArg() {
484
248
  return getArg("--token");
@@ -496,83 +260,4 @@ function generateId() {
496
260
  function padRight(str, len) {
497
261
  return str.length >= len ? str : str + " ".repeat(len - str.length);
498
262
  }
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
263
  //# 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>;