fivocell 1.0.5 → 3.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 (182) hide show
  1. package/README.md +63 -464
  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/behavioral-tracker.d.ts +90 -0
  8. package/dist/behavioral-tracker.d.ts.map +1 -0
  9. package/dist/behavioral-tracker.js +185 -0
  10. package/dist/behavioral-tracker.js.map +1 -0
  11. package/dist/cli.js +417 -1659
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cloud-sync.d.ts +66 -0
  14. package/dist/cloud-sync.d.ts.map +1 -0
  15. package/dist/cloud-sync.js +328 -0
  16. package/dist/cloud-sync.js.map +1 -0
  17. package/dist/code-scanner.d.ts +51 -0
  18. package/dist/code-scanner.d.ts.map +1 -0
  19. package/dist/code-scanner.js +966 -0
  20. package/dist/code-scanner.js.map +1 -0
  21. package/dist/community-intel.d.ts +34 -0
  22. package/dist/community-intel.d.ts.map +1 -0
  23. package/dist/community-intel.js +148 -0
  24. package/dist/community-intel.js.map +1 -0
  25. package/dist/community-intelligence.d.ts +42 -0
  26. package/dist/community-intelligence.d.ts.map +1 -0
  27. package/dist/community-intelligence.js +160 -0
  28. package/dist/community-intelligence.js.map +1 -0
  29. package/dist/community-v2.d.ts +106 -0
  30. package/dist/community-v2.d.ts.map +1 -0
  31. package/dist/community-v2.js +378 -0
  32. package/dist/community-v2.js.map +1 -0
  33. package/dist/core/__tests__/chapter8-hostile.test.js +1 -1
  34. package/dist/core/__tests__/chapter8-hostile.test.js.map +1 -1
  35. package/dist/core/__tests__/chapter9-hostile.test.js +1 -1
  36. package/dist/core/__tests__/chapter9-hostile.test.js.map +1 -1
  37. package/dist/core/__tests__/complexity-analyzer.test.js +15 -15
  38. package/dist/core/__tests__/team-composer.test.js +2 -1
  39. package/dist/core/__tests__/team-composer.test.js.map +1 -1
  40. package/dist/core/convention-detector.d.ts.map +1 -1
  41. package/dist/core/convention-detector.js +11 -23
  42. package/dist/core/convention-detector.js.map +1 -1
  43. package/dist/core/cost-optimizer.d.ts.map +1 -1
  44. package/dist/core/cost-optimizer.js +13 -25
  45. package/dist/core/cost-optimizer.js.map +1 -1
  46. package/dist/core/database.d.ts +28 -0
  47. package/dist/core/database.d.ts.map +1 -0
  48. package/dist/core/database.js +587 -0
  49. package/dist/core/database.js.map +1 -0
  50. package/dist/core/knowledge-graph.d.ts.map +1 -1
  51. package/dist/core/knowledge-graph.js +9 -24
  52. package/dist/core/knowledge-graph.js.map +1 -1
  53. package/dist/core/logger.d.ts +9 -0
  54. package/dist/core/logger.d.ts.map +1 -0
  55. package/dist/core/logger.js +26 -0
  56. package/dist/core/logger.js.map +1 -0
  57. package/dist/core/playbook-generator.js +48 -48
  58. package/dist/core/privacy-manager.d.ts.map +1 -1
  59. package/dist/core/privacy-manager.js +5 -0
  60. package/dist/core/privacy-manager.js.map +1 -1
  61. package/dist/core/project-dna.d.ts.map +1 -1
  62. package/dist/core/project-dna.js +6 -19
  63. package/dist/core/project-dna.js.map +1 -1
  64. package/dist/core/prompt-builder.d.ts +18 -0
  65. package/dist/core/prompt-builder.d.ts.map +1 -0
  66. package/dist/core/prompt-builder.js +325 -0
  67. package/dist/core/prompt-builder.js.map +1 -0
  68. package/dist/core/session-memory.d.ts +90 -0
  69. package/dist/core/session-memory.d.ts.map +1 -0
  70. package/dist/core/session-memory.js +229 -0
  71. package/dist/core/session-memory.js.map +1 -0
  72. package/dist/core/signal-capture.d.ts +5 -0
  73. package/dist/core/signal-capture.d.ts.map +1 -1
  74. package/dist/core/signal-capture.js +67 -0
  75. package/dist/core/signal-capture.js.map +1 -1
  76. package/dist/core/team-composer.d.ts.map +1 -1
  77. package/dist/core/team-composer.js +16 -6
  78. package/dist/core/team-composer.js.map +1 -1
  79. package/dist/cross-model-memory.d.ts +95 -0
  80. package/dist/cross-model-memory.d.ts.map +1 -0
  81. package/dist/cross-model-memory.js +229 -0
  82. package/dist/cross-model-memory.js.map +1 -0
  83. package/dist/daemon/lifecycle.d.ts +3 -0
  84. package/dist/daemon/lifecycle.d.ts.map +1 -1
  85. package/dist/daemon/lifecycle.js +98 -64
  86. package/dist/daemon/lifecycle.js.map +1 -1
  87. package/dist/daemon/server.d.ts.map +1 -1
  88. package/dist/daemon/server.js +637 -25
  89. package/dist/daemon/server.js.map +1 -1
  90. package/dist/developer-intelligence.d.ts +18 -0
  91. package/dist/developer-intelligence.d.ts.map +1 -0
  92. package/dist/developer-intelligence.js +180 -0
  93. package/dist/developer-intelligence.js.map +1 -0
  94. package/dist/first-run.d.ts +8 -0
  95. package/dist/first-run.d.ts.map +1 -0
  96. package/dist/first-run.js +182 -0
  97. package/dist/first-run.js.map +1 -0
  98. package/dist/focus-report.d.ts +32 -0
  99. package/dist/focus-report.d.ts.map +1 -0
  100. package/dist/focus-report.js +293 -0
  101. package/dist/focus-report.js.map +1 -0
  102. package/dist/ide-intelligence.d.ts +118 -0
  103. package/dist/ide-intelligence.d.ts.map +1 -0
  104. package/dist/ide-intelligence.js +284 -0
  105. package/dist/ide-intelligence.js.map +1 -0
  106. package/dist/index.d.ts +22 -0
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +119 -2
  109. package/dist/index.js.map +1 -1
  110. package/dist/insight-generator.d.ts +58 -0
  111. package/dist/insight-generator.d.ts.map +1 -0
  112. package/dist/insight-generator.js +314 -0
  113. package/dist/insight-generator.js.map +1 -0
  114. package/dist/journey-memory.d.ts +75 -0
  115. package/dist/journey-memory.d.ts.map +1 -0
  116. package/dist/journey-memory.js +360 -0
  117. package/dist/journey-memory.js.map +1 -0
  118. package/dist/layers.d.ts +92 -0
  119. package/dist/layers.d.ts.map +1 -0
  120. package/dist/layers.js +226 -0
  121. package/dist/layers.js.map +1 -0
  122. package/dist/mcp-server.d.ts +406 -0
  123. package/dist/mcp-server.d.ts.map +1 -0
  124. package/dist/mcp-server.js +414 -0
  125. package/dist/mcp-server.js.map +1 -0
  126. package/dist/onboarding-scan.d.ts +174 -0
  127. package/dist/onboarding-scan.d.ts.map +1 -0
  128. package/dist/onboarding-scan.js +1039 -0
  129. package/dist/onboarding-scan.js.map +1 -0
  130. package/dist/pc-scanner.d.ts +46 -0
  131. package/dist/pc-scanner.d.ts.map +1 -0
  132. package/dist/pc-scanner.js +488 -0
  133. package/dist/pc-scanner.js.map +1 -0
  134. package/dist/personal-intelligence.d.ts +97 -0
  135. package/dist/personal-intelligence.d.ts.map +1 -0
  136. package/dist/personal-intelligence.js +408 -0
  137. package/dist/personal-intelligence.js.map +1 -0
  138. package/dist/predictive-engine.d.ts +19 -0
  139. package/dist/predictive-engine.d.ts.map +1 -0
  140. package/dist/predictive-engine.js +107 -0
  141. package/dist/predictive-engine.js.map +1 -0
  142. package/dist/predictive-intelligence.d.ts +95 -0
  143. package/dist/predictive-intelligence.d.ts.map +1 -0
  144. package/dist/predictive-intelligence.js +544 -0
  145. package/dist/predictive-intelligence.js.map +1 -0
  146. package/dist/production.d.ts +67 -0
  147. package/dist/production.d.ts.map +1 -0
  148. package/dist/production.js +333 -0
  149. package/dist/production.js.map +1 -0
  150. package/dist/senior-features.d.ts +63 -0
  151. package/dist/senior-features.d.ts.map +1 -0
  152. package/dist/senior-features.js +325 -0
  153. package/dist/senior-features.js.map +1 -0
  154. package/dist/style-pull.d.ts +40 -0
  155. package/dist/style-pull.d.ts.map +1 -0
  156. package/dist/style-pull.js +385 -0
  157. package/dist/style-pull.js.map +1 -0
  158. package/dist/team-collaboration.d.ts +116 -0
  159. package/dist/team-collaboration.d.ts.map +1 -0
  160. package/dist/team-collaboration.js +375 -0
  161. package/dist/team-collaboration.js.map +1 -0
  162. package/dist/team-git.d.ts +47 -0
  163. package/dist/team-git.d.ts.map +1 -0
  164. package/dist/team-git.js +305 -0
  165. package/dist/team-git.js.map +1 -0
  166. package/dist/team-intelligence.d.ts +64 -0
  167. package/dist/team-intelligence.d.ts.map +1 -0
  168. package/dist/team-intelligence.js +289 -0
  169. package/dist/team-intelligence.js.map +1 -0
  170. package/dist/test-watch.d.ts +2 -0
  171. package/dist/test-watch.d.ts.map +1 -0
  172. package/dist/test-watch.js +8 -0
  173. package/dist/test-watch.js.map +1 -0
  174. package/dist/user-intelligence.d.ts +69 -0
  175. package/dist/user-intelligence.d.ts.map +1 -0
  176. package/dist/user-intelligence.js +553 -0
  177. package/dist/user-intelligence.js.map +1 -0
  178. package/dist/work-style.d.ts +49 -0
  179. package/dist/work-style.d.ts.map +1 -0
  180. package/dist/work-style.js +247 -0
  181. package/dist/work-style.js.map +1 -0
  182. package/package.json +3 -2
@@ -0,0 +1,488 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.scanFullPC = scanFullPC;
37
+ exports.getFullScanResult = getFullScanResult;
38
+ exports.formatFullScanReport = formatFullScanReport;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const os = __importStar(require("os"));
42
+ const database_1 = require("./core/database");
43
+ // ─── Project Discovery ──────────────────────────────────────────────────────
44
+ const PROJECT_MARKERS = [
45
+ 'package.json', 'requirements.txt', 'pyproject.toml', 'setup.py',
46
+ 'go.mod', 'Cargo.toml', 'pom.xml', 'build.gradle',
47
+ 'Gemfile', 'composer.json', 'pubspec.yaml', 'mix.exs',
48
+ 'Makefile', 'CMakeLists.txt',
49
+ ];
50
+ const SCAN_DIRS = [
51
+ os.homedir(),
52
+ path.join(os.homedir(), 'Documents'),
53
+ path.join(os.homedir(), 'Desktop'),
54
+ path.join(os.homedir(), 'Projects'),
55
+ path.join(os.homedir(), 'Code'),
56
+ path.join(os.homedir(), 'dev'),
57
+ path.join(os.homedir(), 'work'),
58
+ path.join(os.homedir(), 'repos'),
59
+ path.join(os.homedir(), 'src'),
60
+ ];
61
+ const SKIP_DIRS = new Set([
62
+ 'node_modules', '.git', 'dist', 'build', '.next', '.nuxt',
63
+ 'coverage', '.cache', '__pycache__', '.pytest_cache',
64
+ 'vendor', '.gradle', 'target', '.tox', 'venv', '.venv',
65
+ '.fivo', '.idea', '.vscode', 'AppData', 'Applications',
66
+ 'Windows', 'Program Files', 'Program Files (x86)',
67
+ '.android', '.gradle', '.m2', '.cargo',
68
+ ]);
69
+ const MAX_DEPTH = 4;
70
+ const MAX_PROJECTS = 100;
71
+ const CODE_EXTS = new Set([
72
+ '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
73
+ '.py', '.go', '.rs', '.java', '.cs', '.cpp', '.c', '.h',
74
+ '.rb', '.php', '.swift', '.kt', '.scala',
75
+ '.sql', '.sh', '.bash', '.zsh',
76
+ '.yaml', '.yml', '.json', '.toml',
77
+ '.html', '.css', '.scss', '.less',
78
+ '.vue', '.svelte',
79
+ ]);
80
+ function findProjects(dir, depth = 0, found = []) {
81
+ if (depth > MAX_DEPTH || found.length >= MAX_PROJECTS)
82
+ return found;
83
+ if (!fs.existsSync(dir))
84
+ return found;
85
+ try {
86
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
87
+ for (const entry of entries) {
88
+ if (found.length >= MAX_PROJECTS)
89
+ break;
90
+ if (SKIP_DIRS.has(entry.name))
91
+ continue;
92
+ if (entry.name.startsWith('.') && entry.name !== '.env.example')
93
+ continue;
94
+ const fullPath = path.join(dir, entry.name);
95
+ if (entry.isDirectory()) {
96
+ // Check if this directory is a project
97
+ const isProject = PROJECT_MARKERS.some(m => fs.existsSync(path.join(fullPath, m)));
98
+ if (isProject) {
99
+ found.push(fullPath);
100
+ }
101
+ // Recurse deeper
102
+ findProjects(fullPath, depth + 1, found);
103
+ }
104
+ }
105
+ }
106
+ catch { /* skip inaccessible dirs */ }
107
+ return found;
108
+ }
109
+ function analyzeProject(projectPath) {
110
+ const name = path.basename(projectPath);
111
+ const languages = {};
112
+ let fileCount = 0;
113
+ let lineCount = 0;
114
+ // Check for project markers
115
+ const hasPackageJson = fs.existsSync(path.join(projectPath, 'package.json'));
116
+ const hasRequirements = fs.existsSync(path.join(projectPath, 'requirements.txt')) ||
117
+ fs.existsSync(path.join(projectPath, 'pyproject.toml'));
118
+ const hasGoMod = fs.existsSync(path.join(projectPath, 'go.mod'));
119
+ const hasCargoToml = fs.existsSync(path.join(projectPath, 'Cargo.toml'));
120
+ const hasPomXml = fs.existsSync(path.join(projectPath, 'pom.xml'));
121
+ // Walk source files
122
+ const walk = (dir, depth = 0) => {
123
+ if (depth > 3)
124
+ return;
125
+ try {
126
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
127
+ for (const entry of entries) {
128
+ if (SKIP_DIRS.has(entry.name))
129
+ continue;
130
+ if (entry.name.startsWith('.'))
131
+ continue;
132
+ const fullPath = path.join(dir, entry.name);
133
+ if (entry.isDirectory()) {
134
+ walk(fullPath, depth + 1);
135
+ }
136
+ else if (entry.isFile()) {
137
+ const ext = path.extname(entry.name).toLowerCase();
138
+ if (CODE_EXTS.has(ext)) {
139
+ fileCount++;
140
+ const lang = getLang(ext);
141
+ languages[lang] = (languages[lang] || 0) + 1;
142
+ try {
143
+ const content = fs.readFileSync(fullPath, 'utf-8');
144
+ lineCount += content.split('\n').length;
145
+ }
146
+ catch { }
147
+ }
148
+ }
149
+ }
150
+ }
151
+ catch { }
152
+ };
153
+ walk(projectPath);
154
+ return {
155
+ name,
156
+ path: projectPath,
157
+ languages,
158
+ fileCount,
159
+ lineCount,
160
+ hasPackageJson,
161
+ hasRequirements,
162
+ hasGoMod,
163
+ hasCargoToml,
164
+ hasPomXml,
165
+ };
166
+ }
167
+ function getLang(ext) {
168
+ const map = {
169
+ '.ts': 'typescript', '.tsx': 'typescript',
170
+ '.js': 'javascript', '.jsx': 'javascript', '.mjs': 'javascript', '.cjs': 'javascript',
171
+ '.py': 'python', '.go': 'go', '.rs': 'rust',
172
+ '.java': 'java', '.cs': 'csharp', '.cpp': 'cpp', '.c': 'c', '.h': 'c',
173
+ '.rb': 'ruby', '.php': 'php', '.swift': 'swift', '.kt': 'kotlin',
174
+ '.sql': 'sql', '.sh': 'shell', '.bash': 'shell',
175
+ '.html': 'html', '.css': 'css', '.scss': 'scss',
176
+ '.vue': 'vue', '.svelte': 'svelte',
177
+ '.yaml': 'yaml', '.yml': 'yaml', '.json': 'json', '.toml': 'toml',
178
+ };
179
+ return map[ext] || 'other';
180
+ }
181
+ // ─── Aggregation ─────────────────────────────────────────────────────────────
182
+ function aggregateProfile(projects) {
183
+ const allLanguages = {};
184
+ let totalFiles = 0;
185
+ for (const p of projects) {
186
+ for (const [lang, count] of Object.entries(p.languages)) {
187
+ allLanguages[lang] = (allLanguages[lang] || 0) + count;
188
+ }
189
+ totalFiles += p.fileCount;
190
+ }
191
+ // Primary language
192
+ const langEntries = Object.entries(allLanguages).sort((a, b) => b[1] - a[1]);
193
+ const primaryLanguage = langEntries.length > 0 ? langEntries[0][0] : 'unknown';
194
+ // Language breakdown
195
+ const languages = langEntries.map(([name, files]) => ({
196
+ name,
197
+ files,
198
+ percent: totalFiles > 0 ? Math.round((files / totalFiles) * 100) : 0,
199
+ }));
200
+ // Detect frameworks
201
+ const frameworks = [];
202
+ const hasReact = projects.some(p => p.hasPackageJson && fs.existsSync(path.join(p.path, 'package.json')) &&
203
+ fs.readFileSync(path.join(p.path, 'package.json'), 'utf-8').includes('react'));
204
+ const hasNext = projects.some(p => p.hasPackageJson && fs.existsSync(path.join(p.path, 'package.json')) &&
205
+ fs.readFileSync(path.join(p.path, 'package.json'), 'utf-8').includes('next'));
206
+ const hasDjango = projects.some(p => p.hasRequirements && fs.existsSync(path.join(p.path, 'requirements.txt')) &&
207
+ fs.readFileSync(path.join(p.path, 'requirements.txt'), 'utf-8').includes('django'));
208
+ const hasFastAPI = projects.some(p => p.hasRequirements && fs.existsSync(path.join(p.path, 'requirements.txt')) &&
209
+ fs.readFileSync(path.join(p.path, 'requirements.txt'), 'utf-8').includes('fastapi'));
210
+ if (hasReact)
211
+ frameworks.push('React');
212
+ if (hasNext)
213
+ frameworks.push('Next.js');
214
+ if (hasDjango)
215
+ frameworks.push('Django');
216
+ if (hasFastAPI)
217
+ frameworks.push('FastAPI');
218
+ // Scan code patterns across all projects
219
+ const styleCounts = { single: 0, double: 0, semicolons: 0, noSemicolons: 0, tabs: 0, spaces: 0 };
220
+ const errorCounts = { tryCatch: 0, optionalChain: 0, nullCheck: 0, none: 0 };
221
+ const funcCounts = { arrow: 0, declaration: 0, async: 0 };
222
+ for (const p of projects) {
223
+ try {
224
+ walkForPatterns(p.path, styleCounts, errorCounts, funcCounts);
225
+ }
226
+ catch { }
227
+ }
228
+ // Determine style
229
+ const namingStyle = 'camelCase';
230
+ const quoteStyle = styleCounts.single > styleCounts.double ? 'single' : 'double';
231
+ const semicolonStyle = styleCounts.semicolons > styleCounts.noSemicolons ? 'always' : 'never';
232
+ const indentStyle = styleCounts.spaces > styleCounts.tabs ? 'spaces' : 'tabs';
233
+ const functionStyle = funcCounts.arrow > funcCounts.declaration ? 'arrow' : 'declaration';
234
+ const asyncStyle = funcCounts.async > 0 ? 'uses-async' : 'sync-only';
235
+ const errorHandling = errorCounts.tryCatch > 0 ? 'try-catch' :
236
+ errorCounts.optionalChain > 0 ? 'optional-chaining' : 'none';
237
+ const architectureStyle = primaryLanguage === 'typescript' ? 'typed' : primaryLanguage === 'python' ? 'dynamic' : 'mixed';
238
+ const testPattern = projects.some(p => fs.existsSync(path.join(p.path, 'jest.config.js')) ||
239
+ fs.existsSync(path.join(p.path, 'jest.config.ts')) || fs.existsSync(path.join(p.path, 'vitest.config.ts'))) ? 'jest/vitest' : 'unknown';
240
+ const strengths = [];
241
+ const improvements = [];
242
+ if (asyncStyle === 'uses-async')
243
+ strengths.push('Uses async/await across projects');
244
+ if (errorHandling !== 'none')
245
+ strengths.push('Uses error handling patterns');
246
+ else
247
+ improvements.push('Add error handling across projects');
248
+ if (testPattern !== 'unknown')
249
+ strengths.push('Has testing setup');
250
+ else
251
+ improvements.push('Add testing to more projects');
252
+ if (languages.length > 2)
253
+ strengths.push('Polyglot developer');
254
+ if (frameworks.length > 0)
255
+ strengths.push(`Uses ${frameworks.join(', ')}`);
256
+ return {
257
+ primaryLanguage,
258
+ languages,
259
+ frameworks,
260
+ namingStyle,
261
+ quoteStyle,
262
+ semicolonStyle,
263
+ indentStyle,
264
+ functionStyle,
265
+ asyncStyle,
266
+ errorHandling,
267
+ architectureStyle,
268
+ testPattern,
269
+ strengths,
270
+ improvements,
271
+ totalPatterns: styleCounts.single + styleCounts.double + errorCounts.tryCatch + funcCounts.arrow,
272
+ };
273
+ }
274
+ function walkForPatterns(dir, style, errors, funcs, depth = 0) {
275
+ if (depth > 3)
276
+ return;
277
+ try {
278
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
279
+ for (const entry of entries) {
280
+ if (SKIP_DIRS.has(entry.name) || entry.name.startsWith('.'))
281
+ continue;
282
+ const fullPath = path.join(dir, entry.name);
283
+ if (entry.isDirectory()) {
284
+ walkForPatterns(fullPath, style, errors, funcs, depth + 1);
285
+ }
286
+ else if (entry.isFile()) {
287
+ const ext = path.extname(entry.name).toLowerCase();
288
+ if (CODE_EXTS.has(ext) && ext !== '.json' && ext !== '.yaml' && ext !== '.yml' && ext !== '.toml') {
289
+ try {
290
+ const content = fs.readFileSync(fullPath, 'utf-8');
291
+ const lines = content.split('\n');
292
+ for (const line of lines) {
293
+ const t = line.trim();
294
+ if (t.length === 0 || t.startsWith('//') || t.startsWith('#'))
295
+ continue;
296
+ // Quotes
297
+ const sq = (t.match(/'/g) || []).length;
298
+ const dq = (t.match(/"/g) || []).length;
299
+ if (sq > dq)
300
+ style.single++;
301
+ else if (dq > sq)
302
+ style.double++;
303
+ // Semicolons
304
+ if (t.endsWith(';'))
305
+ style.semicolons++;
306
+ else if (t.length > 0 && /[a-zA-Z0-9"'})\]]/.test(t))
307
+ style.noSemicolons++;
308
+ // Indent
309
+ if (/^\t/.test(line))
310
+ style.tabs++;
311
+ else if (/^ \S/.test(line))
312
+ style.spaces++;
313
+ }
314
+ // Error handling
315
+ errors.tryCatch += (content.match(/\btry\s*\{/g) || []).length;
316
+ errors.optionalChain += (content.match(/\?\./g) || []).length;
317
+ errors.nullCheck += (content.match(/===?\s*null|!==?\s*null/g) || []).length;
318
+ // Functions
319
+ funcs.arrow += (content.match(/(?:const|let)\s+\w+\s*=\s*(?:\([^)]*\)|\w+)\s*=>/g) || []).length;
320
+ funcs.declaration += (content.match(/\bfunction\s+\w+/g) || []).length;
321
+ funcs.async += (content.match(/\basync\s+(?:function|\()/g) || []).length;
322
+ }
323
+ catch { }
324
+ }
325
+ }
326
+ }
327
+ }
328
+ catch { }
329
+ }
330
+ // ─── Database Storage ────────────────────────────────────────────────────────
331
+ function saveFullScan(result) {
332
+ const db = (0, database_1.getDb)();
333
+ db.exec(`
334
+ CREATE TABLE IF NOT EXISTS full_scans (
335
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
336
+ scanned_at TEXT DEFAULT (datetime('now')),
337
+ total_projects INTEGER,
338
+ total_files INTEGER,
339
+ total_lines INTEGER,
340
+ all_languages TEXT,
341
+ aggregated_profile TEXT,
342
+ projects_json TEXT
343
+ )
344
+ `);
345
+ db.prepare('DELETE FROM full_scans').run();
346
+ db.prepare('INSERT INTO full_scans (total_projects, total_files, total_lines, all_languages, aggregated_profile, projects_json) VALUES (?, ?, ?, ?, ?, ?)')
347
+ .run(result.totalProjects, result.totalFiles, result.totalLines, JSON.stringify(result.allLanguages), JSON.stringify(result.aggregatedProfile), JSON.stringify(result.projects.map(p => ({ name: p.name, path: p.path, files: p.fileCount, lines: p.lineCount, languages: p.languages }))));
348
+ }
349
+ // ─── Public API ──────────────────────────────────────────────────────────────
350
+ function scanFullPC() {
351
+ console.log(' Discovering projects...');
352
+ const allProjects = [];
353
+ for (const dir of SCAN_DIRS) {
354
+ if (fs.existsSync(dir)) {
355
+ findProjects(dir, 0, allProjects);
356
+ }
357
+ }
358
+ // Also scan from common development locations
359
+ const extraDirs = [
360
+ 'C:\\Users',
361
+ 'D:\\',
362
+ 'E:\\',
363
+ ];
364
+ for (const dir of extraDirs) {
365
+ if (fs.existsSync(dir)) {
366
+ findProjects(dir, 0, allProjects);
367
+ }
368
+ }
369
+ // Deduplicate
370
+ const uniqueProjects = [...new Set(allProjects)];
371
+ console.log(` Found ${uniqueProjects.length} projects. Scanning...`);
372
+ const projects = [];
373
+ const allLanguages = {};
374
+ let totalFiles = 0;
375
+ let totalLines = 0;
376
+ for (let i = 0; i < uniqueProjects.length; i++) {
377
+ const p = uniqueProjects[i];
378
+ console.log(` [${i + 1}/${uniqueProjects.length}] ${path.basename(p)}`);
379
+ const info = analyzeProject(p);
380
+ projects.push(info);
381
+ for (const [lang, count] of Object.entries(info.languages)) {
382
+ allLanguages[lang] = (allLanguages[lang] || 0) + count;
383
+ }
384
+ totalFiles += info.fileCount;
385
+ totalLines += info.lineCount;
386
+ }
387
+ console.log(' Building profile...');
388
+ const aggregatedProfile = aggregateProfile(projects);
389
+ const result = {
390
+ scannedAt: new Date().toISOString(),
391
+ totalProjects: projects.length,
392
+ totalFiles,
393
+ totalLines,
394
+ allLanguages,
395
+ projects,
396
+ aggregatedProfile,
397
+ };
398
+ saveFullScan(result);
399
+ return result;
400
+ }
401
+ function getFullScanResult() {
402
+ const db = (0, database_1.getDb)();
403
+ try {
404
+ db.exec(`
405
+ CREATE TABLE IF NOT EXISTS full_scans (
406
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
407
+ scanned_at TEXT DEFAULT (datetime('now')),
408
+ total_projects INTEGER,
409
+ total_files INTEGER,
410
+ total_lines INTEGER,
411
+ all_languages TEXT,
412
+ aggregated_profile TEXT,
413
+ projects_json TEXT
414
+ )
415
+ `);
416
+ const row = db.prepare('SELECT * FROM full_scans ORDER BY scanned_at DESC LIMIT 1').get();
417
+ if (!row)
418
+ return null;
419
+ return {
420
+ scannedAt: String(row.scanned_at),
421
+ totalProjects: Number(row.total_projects),
422
+ totalFiles: Number(row.total_files),
423
+ totalLines: Number(row.total_lines),
424
+ allLanguages: JSON.parse(String(row.all_languages)),
425
+ projects: JSON.parse(String(row.projects_json)),
426
+ aggregatedProfile: JSON.parse(String(row.aggregated_profile)),
427
+ };
428
+ }
429
+ catch {
430
+ return null;
431
+ }
432
+ }
433
+ function formatFullScanReport(result) {
434
+ const lines = [];
435
+ lines.push('');
436
+ lines.push(' CELL — FULL PC SCAN');
437
+ lines.push(' ─────────────────────────────────────');
438
+ lines.push('');
439
+ lines.push(` Projects: ${result.totalProjects}`);
440
+ lines.push(` Files: ${result.totalFiles.toLocaleString()}`);
441
+ lines.push(` Lines: ${result.totalLines.toLocaleString()}`);
442
+ lines.push('');
443
+ const p = result.aggregatedProfile;
444
+ lines.push(' YOUR DEVELOPER PROFILE:');
445
+ lines.push('');
446
+ lines.push(` Primary Language: ${p.primaryLanguage}`);
447
+ lines.push(` Frameworks: ${p.frameworks.length > 0 ? p.frameworks.join(', ') : 'none detected'}`);
448
+ lines.push('');
449
+ lines.push(' Languages:');
450
+ for (const l of p.languages.slice(0, 8)) {
451
+ const bar = '#'.repeat(Math.max(1, Math.round(l.percent / 5)));
452
+ lines.push(` ${l.name.padEnd(12)} ${bar} ${l.percent}% (${l.files} files)`);
453
+ }
454
+ lines.push('');
455
+ lines.push(' Style:');
456
+ lines.push(` Naming: ${p.namingStyle}`);
457
+ lines.push(` Quotes: ${p.quoteStyle}`);
458
+ lines.push(` Semicolons: ${p.semicolonStyle}`);
459
+ lines.push(` Indent: ${p.indentStyle}`);
460
+ lines.push(` Functions: ${p.functionStyle}`);
461
+ lines.push(` Async: ${p.asyncStyle}`);
462
+ lines.push(` Errors: ${p.errorHandling}`);
463
+ lines.push(` Architecture:${p.architectureStyle}`);
464
+ lines.push(` Testing: ${p.testPattern}`);
465
+ lines.push('');
466
+ if (p.strengths.length > 0) {
467
+ lines.push(' Strengths:');
468
+ for (const s of p.strengths)
469
+ lines.push(` + ${s}`);
470
+ }
471
+ if (p.improvements.length > 0) {
472
+ lines.push(' Improvements:');
473
+ for (const i of p.improvements)
474
+ lines.push(` ! ${i}`);
475
+ }
476
+ lines.push('');
477
+ lines.push(' Projects Scanned:');
478
+ for (const proj of result.projects.slice(0, 20)) {
479
+ const langs = Object.entries(proj.languages).sort((a, b) => b[1] - a[1]).slice(0, 3).map(([l]) => l).join(', ');
480
+ lines.push(` ${proj.name}: ${proj.fileCount} files, ${proj.lineCount.toLocaleString()} lines (${langs})`);
481
+ }
482
+ if (result.projects.length > 20) {
483
+ lines.push(` ... and ${result.projects.length - 20} more`);
484
+ }
485
+ lines.push('');
486
+ return lines.join('\n');
487
+ }
488
+ //# sourceMappingURL=pc-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pc-scanner.js","sourceRoot":"","sources":["../src/pc-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ export interface CodingRhythm {
2
+ bestHours: string[];
3
+ bestDays: string[];
4
+ worstHours: string[];
5
+ worstDays: string[];
6
+ avgSessionMinutes: number;
7
+ optimalSessionMinutes: number;
8
+ peakFlowWindow: string;
9
+ dayBreakdown: Record<string, {
10
+ commits: number;
11
+ bugs: number;
12
+ quality: number;
13
+ }>;
14
+ hourlyBreakdown: Record<number, {
15
+ sessions: number;
16
+ bugs: number;
17
+ quality: number;
18
+ }>;
19
+ }
20
+ export interface BurnoutSignal {
21
+ detected: boolean;
22
+ severity: 'none' | 'mild' | 'moderate' | 'severe';
23
+ signals: string[];
24
+ metrics: {
25
+ errorRateTrend: string;
26
+ sessionLengthTrend: string;
27
+ revertRate: string;
28
+ commitFrequencyTrend: string;
29
+ };
30
+ suggestion: string;
31
+ confidence: number;
32
+ }
33
+ export interface SkillProgression {
34
+ language: string;
35
+ stage: 'learning' | 'pattern_formation' | 'mastery';
36
+ stageNumber: number;
37
+ firstSeen: string;
38
+ lastActive: string;
39
+ monthsActive: number;
40
+ totalFiles: number;
41
+ totalLines: number;
42
+ errorRate: number;
43
+ errorTrend: 'improving' | 'stable' | 'worsening';
44
+ milestones: string[];
45
+ evidence: string[];
46
+ }
47
+ export interface TechMastery {
48
+ language: string;
49
+ stage: 'learning' | 'proficient' | 'advanced' | 'mastered';
50
+ confidence: number;
51
+ actualPerformance: number;
52
+ confidenceGap: number;
53
+ monthsActive: number;
54
+ projectCount: number;
55
+ fileCount: number;
56
+ lineCount: number;
57
+ recentErrorRate: number;
58
+ historicalErrorRate: number;
59
+ description: string;
60
+ }
61
+ export interface Insight {
62
+ type: '6month' | '1year' | 'weekly' | 'career' | 'mastery';
63
+ title: string;
64
+ content: string;
65
+ metrics: Record<string, number>;
66
+ generatedAt: string;
67
+ }
68
+ export interface CareerTrajectory {
69
+ currentLevel: 'junior' | 'mid' | 'senior' | 'staff' | 'principal';
70
+ levelConfidence: number;
71
+ seniorReadiness: number;
72
+ monthsToSenior: number;
73
+ weakAreas: string[];
74
+ strongAreas: string[];
75
+ recommendations: string[];
76
+ evidence: string[];
77
+ growthRate: number;
78
+ }
79
+ export interface WeeklyDigest {
80
+ period: string;
81
+ totalSessions: number;
82
+ totalBugs: number;
83
+ totalDecisions: number;
84
+ newPatterns: number;
85
+ topLanguages: string[];
86
+ highlights: string[];
87
+ improvements: string[];
88
+ areasToFocus: string[];
89
+ }
90
+ export declare function detectCodingRhythm(): CodingRhythm;
91
+ export declare function detectBurnout(): BurnoutSignal;
92
+ export declare function trackSkillProgression(): SkillProgression[];
93
+ export declare function getTechMasteryMap(): TechMastery[];
94
+ export declare function generatePersonalInsights(): Insight[];
95
+ export declare function getCareerTrajectory(): CareerTrajectory;
96
+ export declare function generateWeeklyDigest(): WeeklyDigest;
97
+ //# sourceMappingURL=personal-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-intelligence.d.ts","sourceRoot":"","sources":["../src/personal-intelligence.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACjD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAID,wBAAgB,kBAAkB,IAAI,YAAY,CAoGjD;AAID,wBAAgB,aAAa,IAAI,aAAa,CAkF7C;AAID,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAgE1D;AAID,wBAAgB,iBAAiB,IAAI,WAAW,EAAE,CAuEjD;AAID,wBAAgB,wBAAwB,IAAI,OAAO,EAAE,CA2CpD;AAID,wBAAgB,mBAAmB,IAAI,gBAAgB,CA2DtD;AAID,wBAAgB,oBAAoB,IAAI,YAAY,CAoCnD"}