fivocell 1.0.4 → 2.0.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 (152) hide show
  1. package/README.md +697 -505
  2. package/bin/cell.js +2 -2
  3. package/dist/behavior-intelligence.d.ts +90 -0
  4. package/dist/behavior-intelligence.d.ts.map +1 -0
  5. package/dist/behavior-intelligence.js +595 -0
  6. package/dist/behavior-intelligence.js.map +1 -0
  7. package/dist/cli.d.ts +6 -1
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +2191 -1
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cloud-sync.d.ts +66 -0
  12. package/dist/cloud-sync.d.ts.map +1 -0
  13. package/dist/cloud-sync.js +328 -0
  14. package/dist/cloud-sync.js.map +1 -0
  15. package/dist/community-intelligence.d.ts +42 -0
  16. package/dist/community-intelligence.d.ts.map +1 -0
  17. package/dist/community-intelligence.js +160 -0
  18. package/dist/community-intelligence.js.map +1 -0
  19. package/dist/community-v2.d.ts +106 -0
  20. package/dist/community-v2.d.ts.map +1 -0
  21. package/dist/community-v2.js +378 -0
  22. package/dist/community-v2.js.map +1 -0
  23. package/dist/core/__tests__/chapter8-hostile.test.js +1 -1
  24. package/dist/core/__tests__/chapter8-hostile.test.js.map +1 -1
  25. package/dist/core/__tests__/chapter9-hostile.test.js +1 -1
  26. package/dist/core/__tests__/chapter9-hostile.test.js.map +1 -1
  27. package/dist/core/__tests__/complexity-analyzer.test.js +15 -15
  28. package/dist/core/__tests__/team-composer.test.js +2 -1
  29. package/dist/core/__tests__/team-composer.test.js.map +1 -1
  30. package/dist/core/convention-detector.d.ts.map +1 -1
  31. package/dist/core/convention-detector.js +11 -23
  32. package/dist/core/convention-detector.js.map +1 -1
  33. package/dist/core/cost-optimizer.d.ts.map +1 -1
  34. package/dist/core/cost-optimizer.js +13 -25
  35. package/dist/core/cost-optimizer.js.map +1 -1
  36. package/dist/core/database.d.ts +28 -0
  37. package/dist/core/database.d.ts.map +1 -0
  38. package/dist/core/database.js +587 -0
  39. package/dist/core/database.js.map +1 -0
  40. package/dist/core/knowledge-graph.d.ts.map +1 -1
  41. package/dist/core/knowledge-graph.js +9 -24
  42. package/dist/core/knowledge-graph.js.map +1 -1
  43. package/dist/core/logger.d.ts +9 -0
  44. package/dist/core/logger.d.ts.map +1 -0
  45. package/dist/core/logger.js +26 -0
  46. package/dist/core/logger.js.map +1 -0
  47. package/dist/core/playbook-generator.js +48 -48
  48. package/dist/core/privacy-manager.d.ts.map +1 -1
  49. package/dist/core/privacy-manager.js +5 -0
  50. package/dist/core/privacy-manager.js.map +1 -1
  51. package/dist/core/project-dna.d.ts.map +1 -1
  52. package/dist/core/project-dna.js +6 -19
  53. package/dist/core/project-dna.js.map +1 -1
  54. package/dist/core/prompt-builder.d.ts +18 -0
  55. package/dist/core/prompt-builder.d.ts.map +1 -0
  56. package/dist/core/prompt-builder.js +325 -0
  57. package/dist/core/prompt-builder.js.map +1 -0
  58. package/dist/core/session-memory.d.ts +90 -0
  59. package/dist/core/session-memory.d.ts.map +1 -0
  60. package/dist/core/session-memory.js +229 -0
  61. package/dist/core/session-memory.js.map +1 -0
  62. package/dist/core/signal-capture.d.ts +5 -0
  63. package/dist/core/signal-capture.d.ts.map +1 -1
  64. package/dist/core/signal-capture.js +67 -0
  65. package/dist/core/signal-capture.js.map +1 -1
  66. package/dist/core/team-composer.d.ts.map +1 -1
  67. package/dist/core/team-composer.js +16 -6
  68. package/dist/core/team-composer.js.map +1 -1
  69. package/dist/cross-model-memory.d.ts +95 -0
  70. package/dist/cross-model-memory.d.ts.map +1 -0
  71. package/dist/cross-model-memory.js +229 -0
  72. package/dist/cross-model-memory.js.map +1 -0
  73. package/dist/daemon/lifecycle.d.ts +18 -0
  74. package/dist/daemon/lifecycle.d.ts.map +1 -1
  75. package/dist/daemon/lifecycle.js +182 -5
  76. package/dist/daemon/lifecycle.js.map +1 -1
  77. package/dist/daemon/server.d.ts.map +1 -1
  78. package/dist/daemon/server.js +269 -6
  79. package/dist/daemon/server.js.map +1 -1
  80. package/dist/first-run.d.ts +8 -0
  81. package/dist/first-run.d.ts.map +1 -0
  82. package/dist/first-run.js +182 -0
  83. package/dist/first-run.js.map +1 -0
  84. package/dist/focus-report.d.ts +32 -0
  85. package/dist/focus-report.d.ts.map +1 -0
  86. package/dist/focus-report.js +293 -0
  87. package/dist/focus-report.js.map +1 -0
  88. package/dist/ide-intelligence.d.ts +118 -0
  89. package/dist/ide-intelligence.d.ts.map +1 -0
  90. package/dist/ide-intelligence.js +284 -0
  91. package/dist/ide-intelligence.js.map +1 -0
  92. package/dist/index.d.ts +22 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +119 -2
  95. package/dist/index.js.map +1 -1
  96. package/dist/insight-generator.d.ts +58 -0
  97. package/dist/insight-generator.d.ts.map +1 -0
  98. package/dist/insight-generator.js +314 -0
  99. package/dist/insight-generator.js.map +1 -0
  100. package/dist/journey-memory.d.ts +75 -0
  101. package/dist/journey-memory.d.ts.map +1 -0
  102. package/dist/journey-memory.js +360 -0
  103. package/dist/journey-memory.js.map +1 -0
  104. package/dist/mcp-server.d.ts +2054 -0
  105. package/dist/mcp-server.d.ts.map +1 -0
  106. package/dist/mcp-server.js +1120 -0
  107. package/dist/mcp-server.js.map +1 -0
  108. package/dist/onboarding-scan.d.ts +174 -0
  109. package/dist/onboarding-scan.d.ts.map +1 -0
  110. package/dist/onboarding-scan.js +1039 -0
  111. package/dist/onboarding-scan.js.map +1 -0
  112. package/dist/personal-intelligence.d.ts +97 -0
  113. package/dist/personal-intelligence.d.ts.map +1 -0
  114. package/dist/personal-intelligence.js +408 -0
  115. package/dist/personal-intelligence.js.map +1 -0
  116. package/dist/predictive-intelligence.d.ts +95 -0
  117. package/dist/predictive-intelligence.d.ts.map +1 -0
  118. package/dist/predictive-intelligence.js +544 -0
  119. package/dist/predictive-intelligence.js.map +1 -0
  120. package/dist/production.d.ts +67 -0
  121. package/dist/production.d.ts.map +1 -0
  122. package/dist/production.js +333 -0
  123. package/dist/production.js.map +1 -0
  124. package/dist/senior-features.d.ts +63 -0
  125. package/dist/senior-features.d.ts.map +1 -0
  126. package/dist/senior-features.js +325 -0
  127. package/dist/senior-features.js.map +1 -0
  128. package/dist/style-pull.d.ts +40 -0
  129. package/dist/style-pull.d.ts.map +1 -0
  130. package/dist/style-pull.js +385 -0
  131. package/dist/style-pull.js.map +1 -0
  132. package/dist/team-collaboration.d.ts +116 -0
  133. package/dist/team-collaboration.d.ts.map +1 -0
  134. package/dist/team-collaboration.js +375 -0
  135. package/dist/team-collaboration.js.map +1 -0
  136. package/dist/team-intelligence.d.ts +64 -0
  137. package/dist/team-intelligence.d.ts.map +1 -0
  138. package/dist/team-intelligence.js +289 -0
  139. package/dist/team-intelligence.js.map +1 -0
  140. package/dist/test-watch.d.ts +2 -0
  141. package/dist/test-watch.d.ts.map +1 -0
  142. package/dist/test-watch.js +8 -0
  143. package/dist/test-watch.js.map +1 -0
  144. package/dist/user-intelligence.d.ts +69 -0
  145. package/dist/user-intelligence.d.ts.map +1 -0
  146. package/dist/user-intelligence.js +553 -0
  147. package/dist/user-intelligence.js.map +1 -0
  148. package/dist/work-style.d.ts +49 -0
  149. package/dist/work-style.d.ts.map +1 -0
  150. package/dist/work-style.js +247 -0
  151. package/dist/work-style.js.map +1 -0
  152. package/package.json +3 -2
@@ -0,0 +1,408 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectCodingRhythm = detectCodingRhythm;
4
+ exports.detectBurnout = detectBurnout;
5
+ exports.trackSkillProgression = trackSkillProgression;
6
+ exports.getTechMasteryMap = getTechMasteryMap;
7
+ exports.generatePersonalInsights = generatePersonalInsights;
8
+ exports.getCareerTrajectory = getCareerTrajectory;
9
+ exports.generateWeeklyDigest = generateWeeklyDigest;
10
+ const database_1 = require("./core/database");
11
+ // ─── Coding Rhythm Detector ──────────────────────────────────────────────────
12
+ function detectCodingRhythm() {
13
+ (0, database_1.initializeDatabase)();
14
+ const db = (0, database_1.getDb)();
15
+ const sessions = db.prepare("SELECT start_time, end_time, files_touched FROM sessions WHERE end_time IS NOT NULL").all();
16
+ const bugs = db.prepare("SELECT created_at FROM behavior_events WHERE event_type = 'bug_fix'").all();
17
+ const hourStats = new Map();
18
+ const dayStats = new Map();
19
+ const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
20
+ for (const s of sessions) {
21
+ try {
22
+ const start = new Date(s.start_time);
23
+ const end = new Date(s.end_time);
24
+ if (isNaN(start.getTime()) || isNaN(end.getTime()))
25
+ continue;
26
+ const mins = (end.getTime() - start.getTime()) / (1000 * 60);
27
+ const hour = start.getHours();
28
+ const day = days[start.getDay()];
29
+ const hs = hourStats.get(hour) || { sessions: 0, bugs: 0, totalMins: 0 };
30
+ hs.sessions++;
31
+ hs.totalMins += mins;
32
+ hourStats.set(hour, hs);
33
+ const ds = dayStats.get(day) || { sessions: 0, bugs: 0, totalMins: 0 };
34
+ ds.sessions++;
35
+ ds.totalMins += mins;
36
+ dayStats.set(day, ds);
37
+ }
38
+ catch { /* skip */ }
39
+ }
40
+ for (const b of bugs) {
41
+ try {
42
+ const d = new Date(b.created_at);
43
+ if (isNaN(d.getTime()))
44
+ continue;
45
+ const hour = d.getHours();
46
+ const day = days[d.getDay()];
47
+ const hs = hourStats.get(hour);
48
+ if (hs)
49
+ hs.bugs++;
50
+ const ds = dayStats.get(day);
51
+ if (ds)
52
+ ds.bugs++;
53
+ }
54
+ catch { /* skip */ }
55
+ }
56
+ const hourlyBreakdown = {};
57
+ for (const [hour, stats] of hourStats) {
58
+ const quality = stats.sessions > 0 ? Math.max(0, 100 - Math.round((stats.bugs / stats.sessions) * 100)) : 100;
59
+ hourlyBreakdown[hour] = { sessions: stats.sessions, bugs: stats.bugs, quality };
60
+ }
61
+ const dayBreakdown = {};
62
+ for (const [day, stats] of dayStats) {
63
+ const quality = stats.sessions > 0 ? Math.max(0, 100 - Math.round((stats.bugs / stats.sessions) * 100)) : 100;
64
+ dayBreakdown[day] = { commits: stats.sessions, bugs: stats.bugs, quality };
65
+ }
66
+ const sortedHours = [...hourStats.entries()].sort((a, b) => {
67
+ const qA = a[1].sessions > 0 ? 1 - (a[1].bugs / a[1].sessions) : 1;
68
+ const qB = b[1].sessions > 0 ? 1 - (b[1].bugs / b[1].sessions) : 1;
69
+ return qB - qA;
70
+ });
71
+ const sortedDays = [...dayStats.entries()].sort((a, b) => {
72
+ const qA = a[1].sessions > 0 ? 1 - (a[1].bugs / a[1].sessions) : 1;
73
+ const qB = b[1].sessions > 0 ? 1 - (b[1].bugs / b[1].sessions) : 1;
74
+ return qB - qA;
75
+ });
76
+ const bestHours = sortedHours.slice(0, 3).map(([h]) => `${h}:00-${h + 1}:00`);
77
+ const worstHours = sortedHours.slice(-3).map(([h]) => `${h}:00-${h + 1}:00`);
78
+ const bestDays = sortedDays.slice(0, 2).map(([d]) => d);
79
+ const worstDays = sortedDays.slice(-2).map(([d]) => d);
80
+ let totalMins = 0;
81
+ let sessionCount = 0;
82
+ for (const [, stats] of hourStats) {
83
+ totalMins += stats.totalMins;
84
+ sessionCount += stats.sessions;
85
+ }
86
+ const avgSessionMinutes = sessionCount > 0 ? Math.round(totalMins / sessionCount) : 45;
87
+ const optimalSessionMinutes = Math.round(avgSessionMinutes * 1.2);
88
+ return {
89
+ bestHours,
90
+ bestDays,
91
+ worstHours,
92
+ worstDays,
93
+ avgSessionMinutes,
94
+ optimalSessionMinutes,
95
+ peakFlowWindow: bestHours[0] || '10:00-11:00',
96
+ dayBreakdown,
97
+ hourlyBreakdown,
98
+ };
99
+ }
100
+ // ─── Burnout Predictor ───────────────────────────────────────────────────────
101
+ function detectBurnout() {
102
+ const db = (0, database_1.getDb)();
103
+ const signals = [];
104
+ const recentBugs = db.prepare("SELECT created_at FROM behavior_events WHERE event_type = 'bug_fix' AND created_at >= datetime('now', '-14 days')").all();
105
+ const olderBugs = db.prepare("SELECT created_at FROM behavior_events WHERE event_type = 'bug_fix' AND created_at >= datetime('now', '-28 days') AND created_at < datetime('now', '-14 days')").all();
106
+ const recentErrorRate = recentBugs.length / 14;
107
+ const olderErrorRate = olderBugs.length / 14 || 0.01;
108
+ const errorTrend = recentErrorRate > olderErrorRate * 1.5 ? 'increasing' : recentErrorRate < olderErrorRate * 0.7 ? 'decreasing' : 'stable';
109
+ if (errorTrend === 'increasing') {
110
+ signals.push(`Error rate increased ${Math.round((recentErrorRate / olderErrorRate) * 100)}% in last 2 weeks`);
111
+ }
112
+ const recentSessions = db.prepare("SELECT start_time, end_time FROM sessions WHERE start_time >= datetime('now', '-14 days') AND end_time IS NOT NULL").all();
113
+ const olderSessions = db.prepare("SELECT start_time, end_time FROM sessions WHERE start_time >= datetime('now', '-28 days') AND start_time < datetime('now', '-14 days') AND end_time IS NOT NULL").all();
114
+ const avgRecentDuration = recentSessions.length > 0
115
+ ? recentSessions.reduce((sum, s) => sum + (new Date(s.end_time).getTime() - new Date(s.start_time).getTime()) / 60000, 0) / recentSessions.length
116
+ : 0;
117
+ const avgOlderDuration = olderSessions.length > 0
118
+ ? olderSessions.reduce((sum, s) => sum + (new Date(s.end_time).getTime() - new Date(s.start_time).getTime()) / 60000, 0) / olderSessions.length
119
+ : 0;
120
+ const sessionTrend = avgRecentDuration < avgOlderDuration * 0.7 ? 'decreasing' : avgRecentDuration > avgOlderDuration * 1.3 ? 'increasing' : 'stable';
121
+ if (sessionTrend === 'decreasing') {
122
+ signals.push(`Average session length dropped from ${Math.round(avgOlderDuration)}min to ${Math.round(avgRecentDuration)}min`);
123
+ }
124
+ const recentReverts = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE description LIKE '%revert%' AND created_at >= datetime('now', '-14 days')").get();
125
+ if (recentReverts.cnt > 2) {
126
+ signals.push(`${recentReverts.cnt} reverts in last 2 weeks — possible fatigue`);
127
+ }
128
+ const recentCommits = recentSessions.length;
129
+ const olderCommits = olderSessions.length;
130
+ const commitTrend = recentCommits < olderCommits * 0.6 ? 'decreasing' : 'stable';
131
+ if (commitTrend === 'decreasing') {
132
+ signals.push(`Commit frequency dropped from ${olderCommits} to ${recentCommits} sessions`);
133
+ }
134
+ let severity = 'none';
135
+ if (signals.length >= 3)
136
+ severity = 'severe';
137
+ else if (signals.length === 2)
138
+ severity = 'moderate';
139
+ else if (signals.length === 1)
140
+ severity = 'mild';
141
+ let suggestion = '';
142
+ if (severity === 'severe')
143
+ suggestion = 'Strong burnout signals detected. Take a 2-3 day break. Your error rate is 2x normal and session lengths have halved.';
144
+ else if (severity === 'moderate')
145
+ suggestion = 'Moderate burnout risk. Consider a lighter schedule this week. Your metrics are trending downward.';
146
+ else if (severity === 'mild')
147
+ suggestion = 'Minor fatigue detected. Take a longer break between sessions today.';
148
+ else
149
+ suggestion = 'No burnout signals. Keep up the healthy rhythm!';
150
+ return {
151
+ detected: severity !== 'none',
152
+ severity,
153
+ signals,
154
+ metrics: {
155
+ errorRateTrend: `${Math.round(recentErrorRate * 100)}/day (was ${Math.round(olderErrorRate * 100)}/day)`,
156
+ sessionLengthTrend: `${Math.round(avgRecentDuration)}min avg (was ${Math.round(avgOlderDuration)}min)`,
157
+ revertRate: `${recentReverts.cnt} reverts in 2 weeks`,
158
+ commitFrequencyTrend: `${recentCommits} sessions (was ${olderCommits})`,
159
+ },
160
+ suggestion,
161
+ confidence: Math.min(0.9, 0.4 + signals.length * 0.15),
162
+ };
163
+ }
164
+ // ─── Skill Progression Tracker ───────────────────────────────────────────────
165
+ function trackSkillProgression() {
166
+ const db = (0, database_1.getDb)();
167
+ const skills = db.prepare('SELECT * FROM skills ORDER BY file_count DESC').all();
168
+ const progressions = [];
169
+ for (const skill of skills) {
170
+ const lang = String(skill.language || '');
171
+ if (!lang || lang.length < 2)
172
+ continue;
173
+ const firstSeen = String(skill.first_seen || '');
174
+ const lastActive = String(skill.last_active || '');
175
+ const monthsActive = firstSeen ? Math.max(1, Math.round((Date.now() - new Date(firstSeen).getTime()) / (30 * 24 * 60 * 60 * 1000))) : 0;
176
+ const bugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix' AND file_path LIKE ?").get(`%${lang.toLowerCase()}%`);
177
+ const totalFiles = Number(skill.file_count || 0);
178
+ const errorRate = totalFiles > 0 ? bugs.cnt / totalFiles : 0;
179
+ const recentBugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix' AND file_path LIKE ? AND created_at >= datetime('now', '-30 days')").get(`%${lang.toLowerCase()}%`);
180
+ const olderBugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix' AND file_path LIKE ? AND created_at >= datetime('now', '-60 days') AND created_at < datetime('now', '-30 days')").get(`%${lang.toLowerCase()}%`);
181
+ const errorTrend = recentBugs.cnt < olderBugs.cnt * 0.7 ? 'improving' : recentBugs.cnt > olderBugs.cnt * 1.3 ? 'worsening' : 'stable';
182
+ let stage = 'learning';
183
+ let stageNumber = 1;
184
+ if (monthsActive >= 6 && errorTrend !== 'worsening' && totalFiles > 20) {
185
+ stage = 'mastery';
186
+ stageNumber = 3;
187
+ }
188
+ else if (monthsActive >= 2 && errorTrend !== 'worsening') {
189
+ stage = 'pattern_formation';
190
+ stageNumber = 2;
191
+ }
192
+ const milestones = [];
193
+ if (totalFiles > 10)
194
+ milestones.push(`${totalFiles} files written`);
195
+ if (monthsActive >= 1)
196
+ milestones.push(`${monthsActive} months active`);
197
+ if (errorTrend === 'improving')
198
+ milestones.push('Error rate improving');
199
+ if (stageNumber >= 2)
200
+ milestones.push('Pattern formation detected');
201
+ if (stageNumber >= 3)
202
+ milestones.push('Mastery achieved');
203
+ progressions.push({
204
+ language: lang,
205
+ stage,
206
+ stageNumber,
207
+ firstSeen,
208
+ lastActive,
209
+ monthsActive,
210
+ totalFiles,
211
+ totalLines: Number(skill.line_count || 0),
212
+ errorRate: Math.round(errorRate * 100) / 100,
213
+ errorTrend,
214
+ milestones,
215
+ evidence: [`Stage ${stageNumber}: ${stage}`, `${monthsActive} months active`, `${totalFiles} files, ${bugs.cnt} bugs`],
216
+ });
217
+ }
218
+ return progressions.sort((a, b) => b.stageNumber - a.stageNumber || b.monthsActive - a.monthsActive);
219
+ }
220
+ // ─── Technology Mastery Map ──────────────────────────────────────────────────
221
+ function getTechMasteryMap() {
222
+ const db = (0, database_1.getDb)();
223
+ const skills = db.prepare('SELECT * FROM skills ORDER BY file_count DESC').all();
224
+ const mastery = [];
225
+ for (const skill of skills) {
226
+ const lang = String(skill.language || '');
227
+ if (!lang || lang.length < 2)
228
+ continue;
229
+ const monthsActive = String(skill.first_seen || '')
230
+ ? Math.max(1, Math.round((Date.now() - new Date(String(skill.first_seen)).getTime()) / (30 * 24 * 60 * 60 * 1000)))
231
+ : 0;
232
+ const fileCount = Number(skill.file_count || 0);
233
+ const lineCount = Number(skill.line_count || 0);
234
+ const projects = db.prepare("SELECT COUNT(DISTINCT project) as cnt FROM behavior_events WHERE file_path LIKE ?").get(`%${lang.toLowerCase()}%`);
235
+ const recentBugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix' AND file_path LIKE ? AND created_at >= datetime('now', '-30 days')").get(`%${lang.toLowerCase()}%`);
236
+ const olderBugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix' AND file_path LIKE ? AND created_at >= datetime('now', '-90 days') AND created_at < datetime('now', '-30 days')").get(`%${lang.toLowerCase()}%`);
237
+ const recentErrorRate = fileCount > 0 ? recentBugs.cnt / fileCount : 0;
238
+ const historicalErrorRate = fileCount > 0 ? olderBugs.cnt / fileCount : 0;
239
+ let stage = 'learning';
240
+ let confidence = 30;
241
+ if (monthsActive >= 8 && recentErrorRate < 0.05 && fileCount > 30) {
242
+ stage = 'mastered';
243
+ confidence = 95;
244
+ }
245
+ else if (monthsActive >= 4 && recentErrorRate < 0.1 && fileCount > 15) {
246
+ stage = 'advanced';
247
+ confidence = 80;
248
+ }
249
+ else if (monthsActive >= 2 && fileCount > 5) {
250
+ stage = 'proficient';
251
+ confidence = 60;
252
+ }
253
+ const actualPerformance = Math.max(0, Math.min(100, 100 - Math.round(recentErrorRate * 200)));
254
+ const confidenceGap = Math.abs(confidence - actualPerformance);
255
+ const descriptions = {
256
+ mastered: `${lang}: ${monthsActive} months, ${fileCount} files, near-zero errors. Mastery achieved.`,
257
+ advanced: `${lang}: ${monthsActive} months, ${fileCount} files, low error rate. Advanced level.`,
258
+ proficient: `${lang}: ${monthsActive} months, ${fileCount} files. Proficient — building patterns.`,
259
+ learning: `${lang}: ${monthsActive || '<1'} month, ${fileCount} files. Still learning — expect errors.`,
260
+ };
261
+ mastery.push({
262
+ language: lang,
263
+ stage,
264
+ confidence,
265
+ actualPerformance,
266
+ confidenceGap,
267
+ monthsActive,
268
+ projectCount: projects.cnt,
269
+ fileCount,
270
+ lineCount,
271
+ recentErrorRate: Math.round(recentErrorRate * 100) / 100,
272
+ historicalErrorRate: Math.round(historicalErrorRate * 100) / 100,
273
+ description: descriptions[stage],
274
+ });
275
+ }
276
+ return mastery.sort((a, b) => b.confidence - a.confidence);
277
+ }
278
+ // ─── Insight Generation Engine ───────────────────────────────────────────────
279
+ function generatePersonalInsights() {
280
+ const db = (0, database_1.getDb)();
281
+ const insights = [];
282
+ const totalSessions = db.prepare('SELECT COUNT(*) as cnt FROM sessions').get().cnt;
283
+ const totalBugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix'").get().cnt;
284
+ const totalDecisions = db.prepare('SELECT COUNT(*) as cnt FROM decisions').get().cnt;
285
+ const rightDecisions = db.prepare('SELECT COUNT(*) as cnt FROM decisions WHERE was_right = 1').get().cnt;
286
+ const accuracy = totalDecisions > 0 ? Math.round((rightDecisions / totalDecisions) * 100) : 0;
287
+ const patterns = db.prepare('SELECT COUNT(*) as cnt FROM patterns').get().cnt;
288
+ const skills = db.prepare('SELECT COUNT(*) as cnt FROM skills WHERE level != ?').get('new');
289
+ insights.push({
290
+ type: '6month',
291
+ title: '6-Month Intelligence Report',
292
+ content: `In the last period: ${totalSessions} sessions, ${totalBugs} bugs fixed, ${totalDecisions} decisions (${accuracy}% accurate). ${patterns} patterns learned across ${skills.cnt} technologies.`,
293
+ metrics: { sessions: totalSessions, bugs: totalBugs, decisions: totalDecisions, accuracy, patterns, technologies: skills.cnt },
294
+ generatedAt: new Date().toISOString(),
295
+ });
296
+ const progression = trackSkillProgression();
297
+ const mastered = progression.filter(p => p.stage === 'mastery');
298
+ const learning = progression.filter(p => p.stage === 'learning');
299
+ insights.push({
300
+ type: '1year',
301
+ title: 'Growth Trajectory',
302
+ content: `Technologies mastered: ${mastered.length} (${mastered.map(m => m.language).join(', ') || 'none yet'}). Still learning: ${learning.length} (${learning.map(l => l.language).join(', ') || 'none'}).`,
303
+ metrics: { mastered: mastered.length, learning: learning.length, total: progression.length },
304
+ generatedAt: new Date().toISOString(),
305
+ });
306
+ const rhythm = detectCodingRhythm();
307
+ insights.push({
308
+ type: 'weekly',
309
+ title: 'Weekly Digest',
310
+ content: `Best hours: ${rhythm.bestHours.join(', ') || 'no data'}. Best days: ${rhythm.bestDays.join(', ') || 'no data'}. Optimal session: ${rhythm.optimalSessionMinutes}min.`,
311
+ metrics: { bestHour: 0, avgSession: rhythm.avgSessionMinutes },
312
+ generatedAt: new Date().toISOString(),
313
+ });
314
+ return insights;
315
+ }
316
+ // ─── Career Trajectory ───────────────────────────────────────────────────────
317
+ function getCareerTrajectory() {
318
+ const db = (0, database_1.getDb)();
319
+ const progression = trackSkillProgression();
320
+ const mastery = getTechMasteryMap();
321
+ const totalSessions = db.prepare('SELECT COUNT(*) as cnt FROM sessions').get().cnt;
322
+ const totalDecisions = db.prepare('SELECT COUNT(*) as cnt FROM decisions').get().cnt;
323
+ const rightDecisions = db.prepare('SELECT COUNT(*) as cnt FROM decisions WHERE was_right = 1').get().cnt;
324
+ const accuracy = totalDecisions > 0 ? (rightDecisions / totalDecisions) * 100 : 0;
325
+ const masteredCount = mastery.filter(m => m.stage === 'mastered').length;
326
+ const advancedCount = mastery.filter(m => m.stage === 'advanced').length;
327
+ const totalMonths = mastery.reduce((sum, m) => sum + m.monthsActive, 0);
328
+ let level = 'junior';
329
+ let levelConfidence = 50;
330
+ if (masteredCount >= 3 && accuracy >= 80 && totalSessions > 50) {
331
+ level = 'senior';
332
+ levelConfidence = 85;
333
+ }
334
+ else if (masteredCount >= 1 && advancedCount >= 2 && accuracy >= 65) {
335
+ level = 'mid';
336
+ levelConfidence = 75;
337
+ }
338
+ else if (totalMonths >= 3) {
339
+ level = 'mid';
340
+ levelConfidence = 55;
341
+ }
342
+ const seniorReadiness = Math.min(100, Math.round((masteredCount * 25) + (advancedCount * 15) + (accuracy * 0.3) + (totalSessions > 30 ? 10 : 0)));
343
+ const monthsToSenior = Math.max(0, Math.round((100 - seniorReadiness) / 5));
344
+ const strongAreas = mastery.filter(m => m.stage === 'mastered' || m.stage === 'advanced').map(m => m.language);
345
+ const weakAreas = progression.filter(p => p.stage === 'learning').map(p => p.language);
346
+ const recommendations = [];
347
+ if (weakAreas.length > 0)
348
+ recommendations.push(`Level up: ${weakAreas.join(', ')}`);
349
+ if (accuracy < 70)
350
+ recommendations.push(`Improve decision accuracy (currently ${Math.round(accuracy)}%)`);
351
+ if (masteredCount < 2)
352
+ recommendations.push('Aim to master 2+ technologies before senior');
353
+ if (totalSessions < 30)
354
+ recommendations.push('Increase coding sessions for more evidence');
355
+ return {
356
+ currentLevel: level,
357
+ levelConfidence: Math.round(levelConfidence),
358
+ seniorReadiness,
359
+ monthsToSenior,
360
+ weakAreas,
361
+ strongAreas,
362
+ recommendations,
363
+ evidence: [
364
+ `${masteredCount} technologies mastered`,
365
+ `${advancedCount} technologies advanced`,
366
+ `${accuracy}% decision accuracy`,
367
+ `${totalSessions} total sessions`,
368
+ `${totalMonths} total months active`,
369
+ ],
370
+ growthRate: Math.round(seniorReadiness / Math.max(1, totalMonths)),
371
+ };
372
+ }
373
+ // ─── Weekly Digest ───────────────────────────────────────────────────────────
374
+ function generateWeeklyDigest() {
375
+ const db = (0, database_1.getDb)();
376
+ const since = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
377
+ const sessions = db.prepare("SELECT COUNT(*) as cnt FROM sessions WHERE start_time >= ?").get(since).cnt;
378
+ const bugs = db.prepare("SELECT COUNT(*) as cnt FROM behavior_events WHERE event_type = 'bug_fix' AND created_at >= ?").get(since).cnt;
379
+ const decisions = db.prepare("SELECT COUNT(*) as cnt FROM decisions WHERE created_at >= ?").get(since).cnt;
380
+ const patterns = db.prepare("SELECT COUNT(*) as cnt FROM patterns WHERE created_at >= ?").get(since).cnt;
381
+ const topLangs = db.prepare("SELECT language, file_count FROM skills ORDER BY file_count DESC LIMIT 3").all();
382
+ const highlights = [];
383
+ if (sessions > 0)
384
+ highlights.push(`${sessions} coding sessions`);
385
+ if (decisions > 0)
386
+ highlights.push(`${decisions} decisions tracked`);
387
+ if (patterns > 0)
388
+ highlights.push(`${patterns} new patterns`);
389
+ const improvements = [];
390
+ const rhythm = detectCodingRhythm();
391
+ if (rhythm.bestHours.length > 0)
392
+ improvements.push(`Peak hours identified: ${rhythm.bestHours[0]}`);
393
+ const focus = [];
394
+ if (bugs > 5)
395
+ focus.push(`${bugs} bugs this week — review error patterns`);
396
+ return {
397
+ period: 'Last 7 days',
398
+ totalSessions: sessions,
399
+ totalBugs: bugs,
400
+ totalDecisions: decisions,
401
+ newPatterns: patterns,
402
+ topLanguages: topLangs.map(l => l.language),
403
+ highlights,
404
+ improvements,
405
+ areasToFocus: focus,
406
+ };
407
+ }
408
+ //# sourceMappingURL=personal-intelligence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-intelligence.js","sourceRoot":"","sources":["../src/personal-intelligence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ export interface PreFailureAlert {
2
+ type: 'repeat_mistake' | 'pattern_risk' | 'error_prone_file';
3
+ severity: 'critical' | 'warning' | 'info';
4
+ message: string;
5
+ evidence: string;
6
+ suggestion: string;
7
+ confidence: number;
8
+ file?: string;
9
+ historicalCount?: number;
10
+ }
11
+ export interface DecisionRegret {
12
+ technology: string;
13
+ timesChosen: number;
14
+ timesReverted: number;
15
+ regretRate: number;
16
+ avgTimeBeforeRevert: number;
17
+ warning: string;
18
+ confidence: number;
19
+ }
20
+ export interface ComplexityTrap {
21
+ type: 'function_growing' | 'file_too_large' | 'abstraction_overload' | 'high_cyclomatic';
22
+ file: string;
23
+ currentValue: number;
24
+ threshold: number;
25
+ message: string;
26
+ suggestion: string;
27
+ confidence: number;
28
+ }
29
+ export interface ScopeCreep {
30
+ feature: string;
31
+ filesTouched: number;
32
+ estimatedFiles: number;
33
+ overrunRatio: number;
34
+ predictedCompletionHours: number;
35
+ actualHoursSoFar: number;
36
+ message: string;
37
+ confidence: number;
38
+ }
39
+ export interface EnergyPrediction {
40
+ type: 'optimal_time' | 'avoid_time' | 'break_needed' | 'energy_low';
41
+ message: string;
42
+ bestTime?: string;
43
+ avoidTime?: string;
44
+ hoursWorked?: number;
45
+ errorRateIncrease?: number;
46
+ confidence: number;
47
+ }
48
+ export interface StackWarning {
49
+ type: 'library_mismatch' | 'tool_ineffective' | 'dependency_risk';
50
+ technology: string;
51
+ message: string;
52
+ alternative?: string;
53
+ evidence: string;
54
+ confidence: number;
55
+ }
56
+ export interface Prediction {
57
+ id: string;
58
+ type: 'pre_failure' | 'decision_regret' | 'complexity_trap' | 'scope_creep' | 'energy' | 'stack';
59
+ severity: 'critical' | 'warning' | 'info';
60
+ title: string;
61
+ message: string;
62
+ confidence: number;
63
+ actionable: boolean;
64
+ suggestedAction?: string;
65
+ createdAt: string;
66
+ project?: string;
67
+ }
68
+ export interface RiskScore {
69
+ file: string;
70
+ score: number;
71
+ factors: Array<{
72
+ name: string;
73
+ weight: number;
74
+ reason: string;
75
+ }>;
76
+ predictions: Prediction[];
77
+ }
78
+ export interface TimeEstimate {
79
+ feature: string;
80
+ estimatedHours: number;
81
+ confidence: number;
82
+ basedOn: string[];
83
+ similarPastFeatures: number;
84
+ }
85
+ export declare function detectPreFailureAlerts(project?: string): PreFailureAlert[];
86
+ export declare function predictDecisionRegret(): DecisionRegret[];
87
+ export declare function getDecisionWarning(technology: string): string | null;
88
+ export declare function detectComplexityTraps(projectDir?: string): ComplexityTrap[];
89
+ export declare function detectScopeCreep(project?: string): ScopeCreep[];
90
+ export declare function predictEnergyPatterns(): EnergyPrediction[];
91
+ export declare function analyzeStackCompatibility(): StackWarning[];
92
+ export declare function getAllPredictions(project?: string): Prediction[];
93
+ export declare function calculateFileRisk(file: string): RiskScore;
94
+ export declare function estimateFeatureTime(feature: string): TimeEstimate;
95
+ //# sourceMappingURL=predictive-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predictive-intelligence.d.ts","sourceRoot":"","sources":["../src/predictive-intelligence.ts"],"names":[],"mappings":"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"}