@boshu2/vibe-check 1.3.2 → 1.5.0

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 (77) hide show
  1. package/.vibe-check/sessions.json +21 -1
  2. package/PLAN-ultimate-game.md +1362 -0
  3. package/claude-progress.json +21 -3
  4. package/claude-progress.txt +103 -0
  5. package/dist/cli.js +1 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/analyze.d.ts.map +1 -1
  8. package/dist/commands/analyze.js +2 -1
  9. package/dist/commands/analyze.js.map +1 -1
  10. package/dist/commands/index.d.ts +1 -0
  11. package/dist/commands/index.d.ts.map +1 -1
  12. package/dist/commands/index.js +3 -1
  13. package/dist/commands/index.js.map +1 -1
  14. package/dist/commands/intervene.d.ts +15 -0
  15. package/dist/commands/intervene.d.ts.map +1 -0
  16. package/dist/commands/intervene.js +183 -0
  17. package/dist/commands/intervene.js.map +1 -0
  18. package/dist/commands/profile.d.ts.map +1 -1
  19. package/dist/commands/profile.js +250 -24
  20. package/dist/commands/profile.js.map +1 -1
  21. package/dist/gamification/badges.d.ts +29 -0
  22. package/dist/gamification/badges.d.ts.map +1 -0
  23. package/dist/gamification/badges.js +114 -0
  24. package/dist/gamification/badges.js.map +1 -0
  25. package/dist/gamification/challenges.d.ts +42 -0
  26. package/dist/gamification/challenges.d.ts.map +1 -0
  27. package/dist/gamification/challenges.js +184 -0
  28. package/dist/gamification/challenges.js.map +1 -0
  29. package/dist/gamification/hall-of-fame.d.ts +17 -0
  30. package/dist/gamification/hall-of-fame.d.ts.map +1 -0
  31. package/dist/gamification/hall-of-fame.js +64 -0
  32. package/dist/gamification/hall-of-fame.js.map +1 -0
  33. package/dist/gamification/index.d.ts +3 -0
  34. package/dist/gamification/index.d.ts.map +1 -1
  35. package/dist/gamification/index.js +5 -1
  36. package/dist/gamification/index.js.map +1 -1
  37. package/dist/gamification/intervention-memory.d.ts +61 -0
  38. package/dist/gamification/intervention-memory.d.ts.map +1 -0
  39. package/dist/gamification/intervention-memory.js +229 -0
  40. package/dist/gamification/intervention-memory.js.map +1 -0
  41. package/dist/gamification/leaderboards.d.ts +49 -0
  42. package/dist/gamification/leaderboards.d.ts.map +1 -0
  43. package/dist/gamification/leaderboards.js +179 -0
  44. package/dist/gamification/leaderboards.js.map +1 -0
  45. package/dist/gamification/pattern-memory.d.ts +45 -0
  46. package/dist/gamification/pattern-memory.d.ts.map +1 -0
  47. package/dist/gamification/pattern-memory.js +188 -0
  48. package/dist/gamification/pattern-memory.js.map +1 -0
  49. package/dist/gamification/profile.d.ts +2 -1
  50. package/dist/gamification/profile.d.ts.map +1 -1
  51. package/dist/gamification/profile.js +15 -1
  52. package/dist/gamification/profile.js.map +1 -1
  53. package/dist/gamification/share.d.ts +29 -0
  54. package/dist/gamification/share.d.ts.map +1 -0
  55. package/dist/gamification/share.js +57 -0
  56. package/dist/gamification/share.js.map +1 -0
  57. package/dist/gamification/stats.d.ts +34 -0
  58. package/dist/gamification/stats.d.ts.map +1 -0
  59. package/dist/gamification/stats.js +91 -0
  60. package/dist/gamification/stats.js.map +1 -0
  61. package/dist/gamification/streaks.d.ts +9 -1
  62. package/dist/gamification/streaks.d.ts.map +1 -1
  63. package/dist/gamification/streaks.js +37 -4
  64. package/dist/gamification/streaks.js.map +1 -1
  65. package/dist/gamification/types.d.ts +73 -0
  66. package/dist/gamification/types.d.ts.map +1 -1
  67. package/dist/gamification/types.js +11 -3
  68. package/dist/gamification/types.js.map +1 -1
  69. package/dist/gamification/xp.d.ts +6 -2
  70. package/dist/gamification/xp.d.ts.map +1 -1
  71. package/dist/gamification/xp.js +27 -5
  72. package/dist/gamification/xp.js.map +1 -1
  73. package/dist/output/terminal.d.ts.map +1 -1
  74. package/dist/output/terminal.js +39 -0
  75. package/dist/output/terminal.js.map +1 -1
  76. package/feature-list.json +91 -1
  77. package/package.json +1 -1
@@ -8,14 +8,31 @@ exports.runProfile2 = runProfile2;
8
8
  const commander_1 = require("commander");
9
9
  const chalk_1 = __importDefault(require("chalk"));
10
10
  const profile_1 = require("../gamification/profile");
11
+ const streaks_1 = require("../gamification/streaks");
11
12
  const xp_1 = require("../gamification/xp");
12
13
  const types_1 = require("../gamification/types");
13
14
  const achievements_1 = require("../gamification/achievements");
15
+ const pattern_memory_1 = require("../gamification/pattern-memory");
16
+ const intervention_memory_1 = require("../gamification/intervention-memory");
17
+ const challenges_1 = require("../gamification/challenges");
18
+ const leaderboards_1 = require("../gamification/leaderboards");
19
+ const hall_of_fame_1 = require("../gamification/hall-of-fame");
20
+ const stats_1 = require("../gamification/stats");
21
+ const badges_1 = require("../gamification/badges");
22
+ const share_1 = require("../gamification/share");
14
23
  function createProfileCommand() {
15
24
  const cmd = new commander_1.Command('profile')
16
25
  .description('View your vibe-check profile, stats, and achievements')
17
26
  .option('--achievements', 'Show all achievements', false)
18
27
  .option('--stats', 'Show detailed stats', false)
28
+ .option('--patterns', 'Show spiral pattern memory (your triggers)', false)
29
+ .option('--interventions', 'Show intervention memory (what breaks spirals)', false)
30
+ .option('--challenges', 'Show weekly challenges', false)
31
+ .option('--leaderboard', 'Show personal leaderboard', false)
32
+ .option('--hall-of-fame', 'Show Hall of Fame records', false)
33
+ .option('--weekly', 'Show this week stats', false)
34
+ .option('--share', 'Output shareable profile text', false)
35
+ .option('--share-json', 'Output shareable profile as JSON', false)
19
36
  .option('--json', 'Output as JSON', false)
20
37
  .action(async (options) => {
21
38
  await runProfile(options);
@@ -24,6 +41,17 @@ function createProfileCommand() {
24
41
  }
25
42
  async function runProfile(options) {
26
43
  const profile = (0, profile_1.loadProfile)();
44
+ // Handle share options first (standalone output)
45
+ if (options.share) {
46
+ const shareable = (0, share_1.createShareableProfile)(profile);
47
+ console.log((0, share_1.formatShareText)(shareable));
48
+ return;
49
+ }
50
+ if (options['share-json']) {
51
+ const shareable = (0, share_1.createShareableProfile)(profile);
52
+ console.log((0, share_1.formatShareJSON)(shareable));
53
+ return;
54
+ }
27
55
  if (options.json) {
28
56
  console.log(JSON.stringify(profile, null, 2));
29
57
  return;
@@ -32,49 +60,106 @@ async function runProfile(options) {
32
60
  const levelInfo = types_1.LEVELS.find(l => l.level === xp.level);
33
61
  const achievementCounts = (0, profile_1.getAchievementCounts)(profile);
34
62
  const recentSessions = (0, profile_1.getRecentSessions)(profile, 30);
63
+ // Get badge
64
+ const badge = (0, badges_1.getCurrentBadge)(stats.totalSessions, streak.longest, xp.total);
65
+ const nextBadge = (0, badges_1.getNextBadge)(stats.totalSessions, streak.longest, xp.total);
35
66
  // Header
36
67
  console.log();
37
- console.log(chalk_1.default.cyan('╭─────────────────────────────────────────────╮'));
38
- console.log(chalk_1.default.cyan('│') + chalk_1.default.bold.white(' Your Vibe Profile ') + chalk_1.default.cyan('│'));
39
- console.log(chalk_1.default.cyan('├─────────────────────────────────────────────┤'));
40
- // Level
68
+ console.log(chalk_1.default.cyan('╭─────────────────────────────────────────────────────────╮'));
69
+ // Title with prestige and badge
70
+ const prestigeStr = xp.prestigeTier ? ` ${types_1.PRESTIGE_TIERS[xp.prestigeTier - 1].icon}` : '';
71
+ const badgeStr = badge ? ` ${badge.icon} ${badge.name}` : '';
72
+ const titleLine = `${levelInfo.icon}${prestigeStr} ${xp.levelName}${badgeStr}`;
73
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold.white(` ${titleLine}`).padEnd(66) + chalk_1.default.cyan('│'));
74
+ console.log(chalk_1.default.cyan('├─────────────────────────────────────────────────────────┤'));
75
+ // Level/XP
41
76
  const levelBar = createProgressBar((0, xp_1.getLevelProgress)(xp), 20);
42
- console.log(chalk_1.default.cyan('│') + ` ${levelInfo.icon} ${chalk_1.default.bold(`Level ${xp.level} ${xp.levelName}`)}`.padEnd(52) + chalk_1.default.cyan('│'));
43
- console.log(chalk_1.default.cyan('│') + ` ${levelBar} ${chalk_1.default.gray(`${xp.currentLevelXP}/${xp.nextLevelXP} XP`)}`.padEnd(60) + chalk_1.default.cyan('│'));
44
- console.log(chalk_1.default.cyan('│') + ''.padEnd(44) + chalk_1.default.cyan('│'));
45
- // Streak
46
- const streakDisplay = streak.current > 0
47
- ? `🔥 Current Streak: ${chalk_1.default.bold(streak.current.toString())} days${streak.current === streak.longest ? chalk_1.default.yellow(' (Best!)') : ''}`
48
- : '🔥 No active streak';
49
- console.log(chalk_1.default.cyan('│') + ` ${streakDisplay}`.padEnd(52) + chalk_1.default.cyan('│'));
77
+ const xpDisplay = xp.nextLevelXP === Infinity ? `${xp.total} XP (MAX)` : `${xp.currentLevelXP}/${xp.nextLevelXP} XP`;
78
+ console.log(chalk_1.default.cyan('│') + ` ${levelBar} ${chalk_1.default.gray(xpDisplay)}`.padEnd(66) + chalk_1.default.cyan('│'));
79
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
80
+ // Streak with enhanced display
81
+ const streakDisplay = (0, streaks_1.formatStreak)(streak);
82
+ console.log(chalk_1.default.cyan('│') + ` ${streakDisplay}`.padEnd(66) + chalk_1.default.cyan(''));
83
+ // Freezes
84
+ const freezeDisplay = (0, streaks_1.formatFreezes)(streak);
85
+ console.log(chalk_1.default.cyan('│') + ` ${freezeDisplay}`.padEnd(66) + chalk_1.default.cyan('│'));
50
86
  const weeklyBar = createProgressBar((streak.weeklyProgress / streak.weeklyGoal) * 100, 5);
51
- console.log(chalk_1.default.cyan('│') + ` 📅 Weekly Goal: ${streak.weeklyProgress}/${streak.weeklyGoal} ${weeklyBar}`.padEnd(52) + chalk_1.default.cyan('│'));
52
- console.log(chalk_1.default.cyan('│') + ` 🏆 Achievements: ${achievementCounts.unlocked}/${achievementCounts.total} unlocked`.padEnd(52) + chalk_1.default.cyan('│'));
53
- console.log(chalk_1.default.cyan('│') + ''.padEnd(44) + chalk_1.default.cyan('│'));
87
+ console.log(chalk_1.default.cyan('│') + ` 📅 Weekly Goal: ${streak.weeklyProgress}/${streak.weeklyGoal} ${weeklyBar}`.padEnd(66) + chalk_1.default.cyan('│'));
88
+ console.log(chalk_1.default.cyan('│') + ` 🏆 Achievements: ${achievementCounts.unlocked}/${achievementCounts.total} unlocked`.padEnd(66) + chalk_1.default.cyan('│'));
89
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
90
+ // Weekly Challenges Section
91
+ const challenges = (0, challenges_1.getCurrentChallenges)(profile);
92
+ if (challenges.length > 0) {
93
+ console.log(chalk_1.default.cyan('├─────────────────────────────────────────────────────────┤'));
94
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold.yellow(' WEEKLY CHALLENGES').padEnd(66) + chalk_1.default.cyan('│'));
95
+ for (const c of challenges) {
96
+ const progressBar = createChallengeBar(c.progress, c.target, 10);
97
+ const status = c.completed
98
+ ? chalk_1.default.green(`✓ COMPLETE (+${c.reward} XP)`)
99
+ : `${c.progress}/${c.target}`;
100
+ console.log(chalk_1.default.cyan('│') + ` ${c.icon} ${c.name}: ${progressBar} ${status}`.padEnd(66) + chalk_1.default.cyan('│'));
101
+ }
102
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
103
+ }
104
+ // Weekly Stats Section
105
+ const weeklyStats = (0, stats_1.getWeeklyStats)(profile.sessions);
106
+ if (weeklyStats.sessions > 0) {
107
+ console.log(chalk_1.default.cyan('├─────────────────────────────────────────────────────────┤'));
108
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold(' 📅 THIS WEEK').padEnd(66) + chalk_1.default.cyan('│'));
109
+ console.log(chalk_1.default.cyan('│') + ` Avg Score: ${weeklyStats.avgScore}% ${weeklyStats.trend.emoji}`.padEnd(66) + chalk_1.default.cyan('│'));
110
+ console.log(chalk_1.default.cyan('│') + ` Sessions: ${weeklyStats.sessions} | XP: ${weeklyStats.xpEarned}`.padEnd(66) + chalk_1.default.cyan('│'));
111
+ if (weeklyStats.sparkline) {
112
+ console.log(chalk_1.default.cyan('│') + ` Trend: ${weeklyStats.sparkline}`.padEnd(66) + chalk_1.default.cyan('│'));
113
+ }
114
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
115
+ }
54
116
  // 30-Day Stats
55
- console.log(chalk_1.default.cyan('') + chalk_1.default.bold(' 📊 30-Day Stats').padEnd(52) + chalk_1.default.cyan('│'));
117
+ console.log(chalk_1.default.cyan('├─────────────────────────────────────────────────────────┤'));
118
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold(' 📊 30-Day Stats').padEnd(66) + chalk_1.default.cyan('│'));
56
119
  const avgScore = recentSessions.length > 0
57
120
  ? Math.round(recentSessions.reduce((sum, s) => sum + s.vibeScore, 0) / recentSessions.length)
58
121
  : 0;
59
122
  const totalCommits = recentSessions.reduce((sum, s) => sum + s.commits, 0);
60
- console.log(chalk_1.default.cyan('│') + ` ├─ Avg Vibe Score: ${chalk_1.default.bold(avgScore.toString())}%`.padEnd(52) + chalk_1.default.cyan('│'));
61
- console.log(chalk_1.default.cyan('│') + ` ├─ Sessions: ${chalk_1.default.bold(recentSessions.length.toString())}`.padEnd(52) + chalk_1.default.cyan('│'));
62
- console.log(chalk_1.default.cyan('│') + ` ├─ Commits Analyzed: ${chalk_1.default.bold(totalCommits.toString())}`.padEnd(52) + chalk_1.default.cyan('│'));
123
+ console.log(chalk_1.default.cyan('│') + ` ├─ Avg Vibe Score: ${chalk_1.default.bold(avgScore.toString())}%`.padEnd(66) + chalk_1.default.cyan('│'));
124
+ console.log(chalk_1.default.cyan('│') + ` ├─ Sessions: ${chalk_1.default.bold(recentSessions.length.toString())}`.padEnd(66) + chalk_1.default.cyan('│'));
125
+ console.log(chalk_1.default.cyan('│') + ` ├─ Commits Analyzed: ${chalk_1.default.bold(totalCommits.toString())}`.padEnd(66) + chalk_1.default.cyan('│'));
63
126
  const spiralsAvoided = recentSessions.filter(s => s.spirals === 0 && s.commits >= 10).length;
64
- console.log(chalk_1.default.cyan('│') + ` └─ Zero-Spiral Sessions: ${chalk_1.default.bold(spiralsAvoided.toString())}`.padEnd(52) + chalk_1.default.cyan('│'));
65
- console.log(chalk_1.default.cyan('│') + ''.padEnd(44) + chalk_1.default.cyan('│'));
127
+ console.log(chalk_1.default.cyan('│') + ` └─ Zero-Spiral Sessions: ${chalk_1.default.bold(spiralsAvoided.toString())}`.padEnd(66) + chalk_1.default.cyan('│'));
128
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
129
+ // Pattern Memory Summary
130
+ const patternInfo = (0, pattern_memory_1.formatPatternMemory)(profile.patternMemory || { version: '1.0.0', records: [], patternCounts: {}, componentCounts: {}, patternDurations: {}, topPatterns: [], topComponents: [], avgRecoveryTime: 0, totalSpirals: 0 });
131
+ if (patternInfo.hasData) {
132
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold(' 🧠 Spiral Triggers').padEnd(66) + chalk_1.default.cyan('│'));
133
+ if (patternInfo.topPatterns.length > 0) {
134
+ const topTrigger = patternInfo.topPatterns[0];
135
+ console.log(chalk_1.default.cyan('│') + ` └─ Top: ${chalk_1.default.yellow(topTrigger.displayName)} (${topTrigger.count}×)`.padEnd(66) + chalk_1.default.cyan('│'));
136
+ }
137
+ console.log(chalk_1.default.cyan('│') + ` Avg recovery: ${chalk_1.default.gray(patternInfo.avgRecoveryTime + ' min')}`.padEnd(66) + chalk_1.default.cyan('│'));
138
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
139
+ }
140
+ // Intervention Memory Summary
141
+ const interventionInfo = (0, intervention_memory_1.formatInterventionMemory)(profile.interventionMemory);
142
+ if (interventionInfo.hasData) {
143
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold(' 🛠️ What Breaks Spirals').padEnd(66) + chalk_1.default.cyan('│'));
144
+ if (interventionInfo.topInterventions.length > 0) {
145
+ const top = interventionInfo.topInterventions[0];
146
+ console.log(chalk_1.default.cyan('│') + ` └─ Go-to: ${chalk_1.default.green(top.icon + ' ' + top.name)} (${top.count}×)`.padEnd(66) + chalk_1.default.cyan('│'));
147
+ }
148
+ console.log(chalk_1.default.cyan('│') + ''.padEnd(56) + chalk_1.default.cyan('│'));
149
+ }
66
150
  // Recent achievements
67
151
  const recentAchievements = achievements.slice(-3).reverse();
68
152
  if (recentAchievements.length > 0) {
69
- console.log(chalk_1.default.cyan('') + chalk_1.default.bold(' Recent Achievements:').padEnd(52) + chalk_1.default.cyan('│'));
153
+ console.log(chalk_1.default.cyan('├─────────────────────────────────────────────────────────┤'));
154
+ console.log(chalk_1.default.cyan('│') + chalk_1.default.bold(' Recent Achievements:').padEnd(66) + chalk_1.default.cyan('│'));
70
155
  for (const ach of recentAchievements) {
71
156
  const dateStr = ach.unlockedAt
72
157
  ? new Date(ach.unlockedAt).toLocaleDateString('en-US', { month: 'short', day: 'numeric' })
73
158
  : '';
74
- console.log(chalk_1.default.cyan('│') + ` ${ach.icon} ${ach.name} ${chalk_1.default.gray(`(${dateStr})`)}`.padEnd(52) + chalk_1.default.cyan('│'));
159
+ console.log(chalk_1.default.cyan('│') + ` ${ach.icon} ${ach.name} ${chalk_1.default.gray(`(${dateStr})`)}`.padEnd(66) + chalk_1.default.cyan('│'));
75
160
  }
76
161
  }
77
- console.log(chalk_1.default.cyan('╰─────────────────────────────────────────────╯'));
162
+ console.log(chalk_1.default.cyan('╰─────────────────────────────────────────────────────────╯'));
78
163
  console.log();
79
164
  // Show all achievements if requested
80
165
  if (options.achievements) {
@@ -84,12 +169,69 @@ async function runProfile(options) {
84
169
  if (options.stats) {
85
170
  showDetailedStats(profile);
86
171
  }
172
+ // Show pattern memory if requested
173
+ if (options.patterns) {
174
+ showPatternMemory(profile.patternMemory);
175
+ }
176
+ // Show intervention memory if requested
177
+ if (options.interventions) {
178
+ showInterventionMemory(profile.interventionMemory);
179
+ }
180
+ // Show challenges if requested
181
+ if (options.challenges) {
182
+ showChallenges(challenges);
183
+ }
184
+ // Show leaderboard if requested
185
+ if (options.leaderboard) {
186
+ const leaderboards = (0, leaderboards_1.loadLeaderboards)();
187
+ console.log(chalk_1.default.bold('\n🏆 Personal Leaderboard\n'));
188
+ console.log((0, leaderboards_1.formatLeaderboard)(leaderboards));
189
+ console.log();
190
+ }
191
+ // Show Hall of Fame if requested
192
+ if (options['hall-of-fame']) {
193
+ const leaderboards = (0, leaderboards_1.loadLeaderboards)();
194
+ const records = (0, hall_of_fame_1.getHallOfFame)(leaderboards);
195
+ console.log('\n' + (0, hall_of_fame_1.formatHallOfFame)(records));
196
+ }
197
+ // Show weekly stats if requested
198
+ if (options.weekly) {
199
+ console.log(chalk_1.default.bold('\n📅 Weekly Statistics\n'));
200
+ console.log((0, stats_1.formatWeeklyStats)(weeklyStats));
201
+ console.log();
202
+ }
87
203
  }
88
204
  function createProgressBar(percent, length) {
89
205
  const filled = Math.round((percent / 100) * length);
90
206
  const empty = length - filled;
91
207
  return chalk_1.default.green('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
92
208
  }
209
+ function createChallengeBar(current, total, length) {
210
+ const pct = Math.min(current / total, 1);
211
+ const filled = Math.round(pct * length);
212
+ const empty = length - filled;
213
+ return chalk_1.default.yellow('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
214
+ }
215
+ function showChallenges(challenges) {
216
+ console.log(chalk_1.default.bold('\n🎯 Weekly Challenges\n'));
217
+ if (challenges.length === 0) {
218
+ console.log(chalk_1.default.gray(' No challenges available this week.'));
219
+ console.log();
220
+ return;
221
+ }
222
+ for (const c of challenges) {
223
+ const progressBar = createChallengeBar(c.progress, c.target, 15);
224
+ const pct = Math.round((c.progress / c.target) * 100);
225
+ const status = c.completed
226
+ ? chalk_1.default.green('✓ COMPLETE')
227
+ : chalk_1.default.gray(`${pct}%`);
228
+ console.log(` ${c.icon} ${chalk_1.default.bold(c.name)}`);
229
+ console.log(` ${c.description}`);
230
+ console.log(` ${progressBar} ${c.progress}/${c.target} ${status}`);
231
+ console.log(` Reward: ${chalk_1.default.yellow(`+${c.reward} XP`)}`);
232
+ console.log();
233
+ }
234
+ }
93
235
  function showAllAchievements(unlockedAchievements) {
94
236
  const allAchievements = (0, achievements_1.getAllAchievements)(unlockedAchievements);
95
237
  const unlockedIds = new Set(unlockedAchievements.map(a => a.id));
@@ -137,6 +279,90 @@ function showDetailedStats(profile) {
137
279
  console.log(` Longest Streak: ${chalk_1.default.bold(streak.longest)} days`);
138
280
  console.log();
139
281
  }
282
+ function showPatternMemory(memory) {
283
+ const patternInfo = (0, pattern_memory_1.formatPatternMemory)(memory);
284
+ console.log(chalk_1.default.bold('\n🧠 Pattern Memory - Your Spiral Triggers\n'));
285
+ if (!patternInfo.hasData) {
286
+ console.log(chalk_1.default.gray(' No spiral patterns recorded yet.'));
287
+ console.log(chalk_1.default.gray(' When spirals are detected, patterns will be tracked here.'));
288
+ console.log();
289
+ return;
290
+ }
291
+ // Summary
292
+ console.log(chalk_1.default.bold('Summary'));
293
+ console.log(` ${patternInfo.summary}`);
294
+ console.log(` Total spirals recorded: ${chalk_1.default.bold(patternInfo.totalSpirals.toString())}`);
295
+ console.log(` Average recovery time: ${chalk_1.default.bold(patternInfo.avgRecoveryTime.toString())} minutes`);
296
+ console.log();
297
+ // Top patterns
298
+ if (patternInfo.topPatterns.length > 0) {
299
+ console.log(chalk_1.default.bold('Top Spiral Patterns'));
300
+ for (const pattern of patternInfo.topPatterns) {
301
+ const bar = createPatternBar(pattern.count, patternInfo.totalSpirals);
302
+ console.log(` ${bar} ${chalk_1.default.yellow(pattern.displayName)} (${pattern.count}×, ${pattern.totalMinutes}m total)`);
303
+ console.log(chalk_1.default.gray(` 💡 ${pattern.advice}`));
304
+ }
305
+ console.log();
306
+ }
307
+ // Top components
308
+ if (patternInfo.topComponents.length > 0) {
309
+ console.log(chalk_1.default.bold('Top Triggering Components'));
310
+ for (const comp of patternInfo.topComponents) {
311
+ const bar = createPatternBar(comp.count, patternInfo.totalSpirals);
312
+ console.log(` ${bar} ${comp.component} (${comp.count}×)`);
313
+ }
314
+ console.log();
315
+ }
316
+ console.log(chalk_1.default.gray('Use this data to identify recurring issues and add tracer tests.'));
317
+ console.log();
318
+ }
319
+ function createPatternBar(count, total) {
320
+ const pct = total > 0 ? (count / total) * 100 : 0;
321
+ const filled = Math.round(pct / 10);
322
+ const empty = 10 - filled;
323
+ return chalk_1.default.yellow('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
324
+ }
325
+ function createInterventionBar(count, total) {
326
+ const pct = total > 0 ? (count / total) * 100 : 0;
327
+ const filled = Math.round(pct / 10);
328
+ const empty = 10 - filled;
329
+ return chalk_1.default.green('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
330
+ }
331
+ function showInterventionMemory(memory) {
332
+ const interventionInfo = (0, intervention_memory_1.formatInterventionMemory)(memory);
333
+ console.log(chalk_1.default.bold('\n🛠️ Intervention Memory - What Breaks Your Spirals\n'));
334
+ if (!interventionInfo.hasData) {
335
+ console.log(chalk_1.default.gray(' No interventions recorded yet.'));
336
+ console.log(chalk_1.default.gray(' When you break out of a spiral, record what helped:'));
337
+ console.log(chalk_1.default.gray(' vibe-check intervene TRACER_TEST --pattern SECRETS_AUTH'));
338
+ console.log();
339
+ return;
340
+ }
341
+ // Summary
342
+ console.log(chalk_1.default.bold('Summary'));
343
+ console.log(` ${interventionInfo.summary}`);
344
+ console.log(` Average spiral duration: ${chalk_1.default.bold(interventionInfo.avgTimeToIntervene.toString())} minutes`);
345
+ console.log();
346
+ // Top interventions
347
+ if (interventionInfo.topInterventions.length > 0) {
348
+ console.log(chalk_1.default.bold('Your Go-To Interventions'));
349
+ for (const int of interventionInfo.topInterventions) {
350
+ const bar = createInterventionBar(int.count, interventionInfo.totalInterventions);
351
+ console.log(` ${int.icon} ${int.name.padEnd(15)} ${bar} ${int.count}×`);
352
+ }
353
+ console.log();
354
+ }
355
+ // Pattern-specific recommendations
356
+ if (interventionInfo.patternRecommendations.length > 0) {
357
+ console.log(chalk_1.default.bold('What Works by Pattern'));
358
+ for (const rec of interventionInfo.patternRecommendations) {
359
+ console.log(` ${chalk_1.default.yellow(rec.pattern)}: ${rec.interventions.join(', ')}`);
360
+ }
361
+ console.log();
362
+ }
363
+ console.log(chalk_1.default.gray('Keep recording what breaks your spirals to build your playbook!'));
364
+ console.log();
365
+ }
140
366
  async function runProfile2(options) {
141
367
  return runProfile(options);
142
368
  }
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export interface RankBadge {
2
+ id: string;
3
+ name: string;
4
+ icon: string;
5
+ color: string;
6
+ requirement: string;
7
+ threshold: {
8
+ type: 'sessions' | 'streak' | 'xp' | 'score';
9
+ value: number;
10
+ };
11
+ }
12
+ export declare const RANK_BADGES: RankBadge[];
13
+ /**
14
+ * Get current rank badge
15
+ */
16
+ export declare function getCurrentBadge(sessions: number, streak: number, xp: number): RankBadge | null;
17
+ /**
18
+ * Get next badge and progress
19
+ */
20
+ export declare function getNextBadge(sessions: number, streak: number, xp: number): {
21
+ badge: RankBadge;
22
+ progress: number;
23
+ remaining: string;
24
+ } | null;
25
+ /**
26
+ * Format badge display
27
+ */
28
+ export declare function formatBadge(badge: RankBadge | null): string;
29
+ //# sourceMappingURL=badges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badges.d.ts","sourceRoot":"","sources":["../../src/gamification/badges.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,EAyClC,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT,SAAS,GAAG,IAAI,CAoBlB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiClE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,CAG3D"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RANK_BADGES = void 0;
4
+ exports.getCurrentBadge = getCurrentBadge;
5
+ exports.getNextBadge = getNextBadge;
6
+ exports.formatBadge = formatBadge;
7
+ exports.RANK_BADGES = [
8
+ {
9
+ id: 'bronze',
10
+ name: 'Bronze',
11
+ icon: '🥉',
12
+ color: '#CD7F32',
13
+ requirement: '10 sessions',
14
+ threshold: { type: 'sessions', value: 10 },
15
+ },
16
+ {
17
+ id: 'silver',
18
+ name: 'Silver',
19
+ icon: '🥈',
20
+ color: '#C0C0C0',
21
+ requirement: '50 sessions',
22
+ threshold: { type: 'sessions', value: 50 },
23
+ },
24
+ {
25
+ id: 'gold',
26
+ name: 'Gold',
27
+ icon: '🥇',
28
+ color: '#FFD700',
29
+ requirement: '100 sessions',
30
+ threshold: { type: 'sessions', value: 100 },
31
+ },
32
+ {
33
+ id: 'platinum',
34
+ name: 'Platinum',
35
+ icon: '💎',
36
+ color: '#E5E4E2',
37
+ requirement: '14-day streak',
38
+ threshold: { type: 'streak', value: 14 },
39
+ },
40
+ {
41
+ id: 'diamond',
42
+ name: 'Diamond',
43
+ icon: '🔷',
44
+ color: '#B9F2FF',
45
+ requirement: '5000+ XP',
46
+ threshold: { type: 'xp', value: 5000 },
47
+ },
48
+ ];
49
+ /**
50
+ * Get current rank badge
51
+ */
52
+ function getCurrentBadge(sessions, streak, xp) {
53
+ // Check from highest to lowest
54
+ for (let i = exports.RANK_BADGES.length - 1; i >= 0; i--) {
55
+ const badge = exports.RANK_BADGES[i];
56
+ const { type, value } = badge.threshold;
57
+ switch (type) {
58
+ case 'sessions':
59
+ if (sessions >= value)
60
+ return badge;
61
+ break;
62
+ case 'streak':
63
+ if (streak >= value)
64
+ return badge;
65
+ break;
66
+ case 'xp':
67
+ if (xp >= value)
68
+ return badge;
69
+ break;
70
+ }
71
+ }
72
+ return null;
73
+ }
74
+ /**
75
+ * Get next badge and progress
76
+ */
77
+ function getNextBadge(sessions, streak, xp) {
78
+ const current = getCurrentBadge(sessions, streak, xp);
79
+ const currentIdx = current ? exports.RANK_BADGES.findIndex(b => b.id === current.id) : -1;
80
+ if (currentIdx >= exports.RANK_BADGES.length - 1)
81
+ return null;
82
+ const next = exports.RANK_BADGES[currentIdx + 1];
83
+ const { type, value } = next.threshold;
84
+ let currentValue;
85
+ let unit;
86
+ switch (type) {
87
+ case 'sessions':
88
+ currentValue = sessions;
89
+ unit = 'sessions';
90
+ break;
91
+ case 'streak':
92
+ currentValue = streak;
93
+ unit = 'day streak';
94
+ break;
95
+ case 'xp':
96
+ currentValue = xp;
97
+ unit = 'XP';
98
+ break;
99
+ default:
100
+ return null;
101
+ }
102
+ const progress = Math.min((currentValue / value) * 100, 99);
103
+ const remaining = `${value - currentValue} ${unit}`;
104
+ return { badge: next, progress, remaining };
105
+ }
106
+ /**
107
+ * Format badge display
108
+ */
109
+ function formatBadge(badge) {
110
+ if (!badge)
111
+ return 'No badge yet';
112
+ return `${badge.icon} ${badge.name} Tier`;
113
+ }
114
+ //# sourceMappingURL=badges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badges.js","sourceRoot":"","sources":["../../src/gamification/badges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { UserProfile, SessionRecord, StreakState } from './types';
2
+ export type ChallengeType = 'TRUST_STREAK' | 'ZERO_SPIRALS' | 'ELITE_COUNT' | 'COMMIT_VOLUME' | 'STREAK_EXTEND';
3
+ export interface Challenge {
4
+ id: string;
5
+ type: ChallengeType;
6
+ name: string;
7
+ description: string;
8
+ icon: string;
9
+ target: number;
10
+ progress: number;
11
+ reward: number;
12
+ weekStart: string;
13
+ completed: boolean;
14
+ completedAt?: string;
15
+ }
16
+ export declare const CHALLENGE_DEFINITIONS: Record<ChallengeType, {
17
+ name: string;
18
+ description: (target: number) => string;
19
+ icon: string;
20
+ targets: number[];
21
+ rewards: number[];
22
+ }>;
23
+ /**
24
+ * Generate weekly challenges based on user's weak metrics
25
+ */
26
+ export declare function generateWeeklyChallenges(profile: UserProfile): Challenge[];
27
+ /**
28
+ * Update challenge progress after a session
29
+ */
30
+ export declare function updateChallengeProgress(challenges: Challenge[], session: SessionRecord, streak: StreakState): {
31
+ challenges: Challenge[];
32
+ completed: Challenge[];
33
+ };
34
+ /**
35
+ * Get current week's challenges, generating if needed
36
+ */
37
+ export declare function getCurrentChallenges(profile: UserProfile): Challenge[];
38
+ /**
39
+ * Format challenges for display
40
+ */
41
+ export declare function formatChallenges(challenges: Challenge[]): string;
42
+ //# sourceMappingURL=challenges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"challenges.d.ts","sourceRoot":"","sources":["../../src/gamification/challenges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGlE,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,cAAc,GACd,aAAa,GACb,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,aAAa,EAAE;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAoCA,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,CAyC1E;AAqBD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,SAAS,EAAE,EACvB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,WAAW,GAClB;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,EAAE,CAAA;CAAE,CAgCrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,CAatE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAUhE"}