fivocell 2.0.0 → 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 (51) hide show
  1. package/README.md +104 -697
  2. package/dist/behavioral-tracker.d.ts +90 -0
  3. package/dist/behavioral-tracker.d.ts.map +1 -0
  4. package/dist/behavioral-tracker.js +185 -0
  5. package/dist/behavioral-tracker.js.map +1 -0
  6. package/dist/cli.d.ts +1 -6
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +430 -3862
  9. package/dist/cli.js.map +1 -1
  10. package/dist/code-scanner.d.ts +51 -0
  11. package/dist/code-scanner.d.ts.map +1 -0
  12. package/dist/code-scanner.js +966 -0
  13. package/dist/code-scanner.js.map +1 -0
  14. package/dist/community-intel.d.ts +34 -0
  15. package/dist/community-intel.d.ts.map +1 -0
  16. package/dist/community-intel.js +148 -0
  17. package/dist/community-intel.js.map +1 -0
  18. package/dist/daemon/lifecycle.d.ts +0 -15
  19. package/dist/daemon/lifecycle.d.ts.map +1 -1
  20. package/dist/daemon/lifecycle.js +88 -231
  21. package/dist/daemon/lifecycle.js.map +1 -1
  22. package/dist/daemon/server.d.ts.map +1 -1
  23. package/dist/daemon/server.js +368 -19
  24. package/dist/daemon/server.js.map +1 -1
  25. package/dist/developer-intelligence.d.ts +18 -0
  26. package/dist/developer-intelligence.d.ts.map +1 -0
  27. package/dist/developer-intelligence.js +180 -0
  28. package/dist/developer-intelligence.js.map +1 -0
  29. package/dist/layers.d.ts +92 -0
  30. package/dist/layers.d.ts.map +1 -0
  31. package/dist/layers.js +226 -0
  32. package/dist/layers.js.map +1 -0
  33. package/dist/mcp-server.d.ts +194 -1842
  34. package/dist/mcp-server.d.ts.map +1 -1
  35. package/dist/mcp-server.js +169 -875
  36. package/dist/mcp-server.js.map +1 -1
  37. package/dist/pc-scanner.d.ts +46 -0
  38. package/dist/pc-scanner.d.ts.map +1 -0
  39. package/dist/pc-scanner.js +488 -0
  40. package/dist/pc-scanner.js.map +1 -0
  41. package/dist/predictive-engine.d.ts +19 -0
  42. package/dist/predictive-engine.d.ts.map +1 -0
  43. package/dist/predictive-engine.js +107 -0
  44. package/dist/predictive-engine.js.map +1 -0
  45. package/dist/style-pull.d.ts +1 -1
  46. package/dist/style-pull.js +2 -2
  47. package/dist/team-git.d.ts +47 -0
  48. package/dist/team-git.d.ts.map +1 -0
  49. package/dist/team-git.js +305 -0
  50. package/dist/team-git.js.map +1 -0
  51. package/package.json +1 -1
@@ -0,0 +1,180 @@
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.buildDeveloperIntelligence = buildDeveloperIntelligence;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const logger_1 = require("./core/logger");
40
+ const behavior_intelligence_1 = require("./behavior-intelligence");
41
+ const journey_memory_1 = require("./journey-memory");
42
+ const user_intelligence_1 = require("./user-intelligence");
43
+ function buildDeveloperIntelligence(rootDir) {
44
+ if (!fs.existsSync(path.join(rootDir, '.git')))
45
+ return null;
46
+ try {
47
+ const user = (0, user_intelligence_1.buildUserProfile)(rootDir);
48
+ const behavior = (0, behavior_intelligence_1.buildIntelligenceReport)(rootDir);
49
+ const journey = (0, journey_memory_1.buildJourneyReport)(rootDir);
50
+ (0, user_intelligence_1.saveUserProfile)(user);
51
+ (0, behavior_intelligence_1.saveIntelligenceReport)(behavior);
52
+ (0, journey_memory_1.saveJourneyReport)(journey);
53
+ // Sync to behavioral tracker
54
+ syncToBehavioralTracker(user, behavior, journey, rootDir);
55
+ // Score
56
+ const behavioralScore = calculateBehavioralScore(behavior);
57
+ // Summaries
58
+ const topBlindSpots = behavior.blindSpots
59
+ .filter(b => b.severity === 'high')
60
+ .slice(0, 5)
61
+ .map(b => `${b.area}: ${b.description} (${b.fileCount} files)`);
62
+ const topMistakes = behavior.mistakes
63
+ .filter(m => m.stillHappening)
64
+ .slice(0, 5)
65
+ .map(m => `${m.pattern} — ${m.count}x, last: ${m.lastOccurrence}`);
66
+ const topStrengths = buildStrengths(behavior, user);
67
+ const timeSummary = timeSummaryText(behavior.timePatterns);
68
+ const journeySummary = journeySummaryText(journey);
69
+ return {
70
+ user, behavior, journey,
71
+ behavioralScore, topBlindSpots, topMistakes, topStrengths,
72
+ timeSummary, journeySummary,
73
+ generatedAt: new Date().toISOString(),
74
+ };
75
+ }
76
+ catch (err) {
77
+ logger_1.logger.error(`Developer intelligence failed: ${String(err)}`);
78
+ return null;
79
+ }
80
+ }
81
+ // ─── Sync to Behavioral Tracker ──────────────────────────────────────
82
+ function syncToBehavioralTracker(user, behavior, journey, rootDir) {
83
+ try {
84
+ const { logError, logDecision, logContext } = require('./behavioral-tracker');
85
+ const projectName = path.basename(rootDir);
86
+ // Log blind spots as errors
87
+ for (const bs of behavior.blindSpots.slice(0, 10)) {
88
+ logError({
89
+ project: projectName,
90
+ file: bs.files[0] || '',
91
+ errorType: `blind_spot_${bs.area}`,
92
+ errorMessage: `${bs.description} — severity: ${bs.severity}, files: ${bs.fileCount}`,
93
+ line: 0,
94
+ });
95
+ }
96
+ // Log repeat mistakes as errors
97
+ for (const m of behavior.mistakes.filter(m => m.stillHappening).slice(0, 10)) {
98
+ logError({
99
+ project: projectName,
100
+ file: m.files[0] || '',
101
+ errorType: `repeat_${m.category}`,
102
+ errorMessage: `${m.pattern} — ${m.count} occurrences, last: ${m.lastOccurrence}`,
103
+ line: 0,
104
+ });
105
+ }
106
+ // Log decisions
107
+ for (const d of behavior.decisions.slice(0, 20)) {
108
+ logDecision({
109
+ project: projectName,
110
+ file: '',
111
+ decision: `${d.type}: ${d.message}`,
112
+ approach: d.from ? `${d.from} → ${d.to || 'removed'}` : (d.to || ''),
113
+ worked: true,
114
+ });
115
+ }
116
+ // Log current context
117
+ const timeSummary = timeSummaryText(behavior.timePatterns);
118
+ logContext({
119
+ project: projectName,
120
+ task: `Git intelligence: ${behavior.projectCount} projects, ${behavior.totalFiles} files. ${timeSummary}`,
121
+ files: [],
122
+ });
123
+ }
124
+ catch { /* behavioral tracker may not be ready */ }
125
+ }
126
+ // ─── Helpers ─────────────────────────────────────────────────────────
127
+ function timeSummaryText(tp) {
128
+ const parts = [];
129
+ if (tp.bestHours)
130
+ parts.push(`Best hours: ${tp.bestHours}`);
131
+ if (tp.mostProductiveDay)
132
+ parts.push(`Most productive: ${tp.mostProductiveDay}`);
133
+ if (tp.bugIntroductionTimes.length > 0) {
134
+ parts.push(`${tp.bugIntroductionTimes.length} bugs found`);
135
+ }
136
+ return parts.join(' | ') || 'time data unavailable';
137
+ }
138
+ function journeySummaryText(jr) {
139
+ const parts = [];
140
+ if (jr.skills.length > 0) {
141
+ const mastered = jr.skills.filter(s => s.currentLevel === 'mastered' || s.currentLevel === 'proficient');
142
+ if (mastered.length > 0)
143
+ parts.push(`Mastered: ${mastered.map(s => s.area).join(', ')}`);
144
+ const learning = jr.skills.filter(s => s.currentLevel === 'beginner');
145
+ if (learning.length > 0)
146
+ parts.push(`Learning: ${learning.map(s => s.area).join(', ')}`);
147
+ }
148
+ if (jr.timeline.length > 0) {
149
+ parts.push(`${jr.timeline.length} milestone events`);
150
+ }
151
+ return parts.join(' | ') || 'journey data building...';
152
+ }
153
+ function calculateBehavioralScore(behavior) {
154
+ let score = 50;
155
+ // Fewer high-severity blind spots = better
156
+ const highBlinds = behavior.blindSpots.filter(b => b.severity === 'high').length;
157
+ score -= Math.min(20, highBlinds * 4);
158
+ // Fewer repeat mistakes = better
159
+ score -= Math.min(15, behavior.mistakes.filter(m => m.stillHappening).length * 3);
160
+ // More tech mastery = better
161
+ score += Math.min(15, behavior.techMastery.filter(t => t.assessment === 'mastered').length * 3);
162
+ return Math.max(0, Math.min(100, score));
163
+ }
164
+ function buildStrengths(behavior, _user) {
165
+ const strengths = [];
166
+ const mastered = behavior.techMastery.filter(t => t.assessment === 'mastered' || t.assessment === 'proficient');
167
+ if (mastered.length > 0)
168
+ strengths.push(`Strong in: ${mastered.map(t => t.language).join(', ')}`);
169
+ if (behavior.blindSpots.filter(b => b.severity === 'high').length === 0) {
170
+ strengths.push('No high-severity blind spots detected');
171
+ }
172
+ if (behavior.problemSolving.fileOrganization === 'many-small-files') {
173
+ strengths.push('Clean file organization — small focused files');
174
+ }
175
+ if (behavior.problemSolving.comments.ratio > 0.5) {
176
+ strengths.push('Well-documented code (good JSDoc ratio)');
177
+ }
178
+ return strengths;
179
+ }
180
+ //# sourceMappingURL=developer-intelligence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-intelligence.js","sourceRoot":"","sources":["../src/developer-intelligence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ declare const CELL_DIR: string;
2
+ declare const LAYERS: readonly ["personal", "team", "community"];
3
+ export declare function savePersonalProfile(profile: {
4
+ namingStyle: string;
5
+ quoteStyle: string;
6
+ semicolonStyle: string;
7
+ indentStyle: string;
8
+ functionStyle: string;
9
+ asyncStyle: string;
10
+ errorHandling: string;
11
+ architectureStyle: string;
12
+ testPattern: string;
13
+ strengths: string[];
14
+ improvements: string[];
15
+ topPatterns: string[];
16
+ }): void;
17
+ export declare function savePersonalStyle(patterns: Array<{
18
+ type: string;
19
+ value: string;
20
+ count: number;
21
+ trustScore: number;
22
+ }>): void;
23
+ export declare function savePersonalErrors(errors: Array<{
24
+ errorType: string;
25
+ count: number;
26
+ avgFixTime: number;
27
+ fixRate: number;
28
+ }>): void;
29
+ export declare function savePersonalDecisions(decisions: Array<{
30
+ decision: string;
31
+ approach: string;
32
+ worked: boolean;
33
+ }>): void;
34
+ export declare function savePersonalSession(session: {
35
+ task: string;
36
+ files: string[];
37
+ startedAt: string;
38
+ }): void;
39
+ export declare function getPersonalProfile(): Record<string, unknown> | null;
40
+ export declare function getPersonalStyle(): Record<string, unknown> | null;
41
+ export declare function getPersonalErrors(): Record<string, unknown> | null;
42
+ export declare function getPersonalDecisions(): Record<string, unknown> | null;
43
+ export declare function getPersonalSession(): Record<string, unknown> | null;
44
+ export declare function saveTeamMembers(members: Array<{
45
+ name: string;
46
+ role: string;
47
+ joinedAt: string;
48
+ }>): void;
49
+ export declare function saveTeamPatterns(patterns: Array<{
50
+ name: string;
51
+ value: string;
52
+ count: number;
53
+ }>): void;
54
+ export declare function saveTeamBlindSpots(blindSpots: Array<{
55
+ issue: string;
56
+ severity: string;
57
+ count: number;
58
+ }>): void;
59
+ export declare function getTeamMembers(): Record<string, unknown> | null;
60
+ export declare function getTeamPatterns(): Record<string, unknown> | null;
61
+ export declare function getTeamBlindSpots(): Record<string, unknown> | null;
62
+ export declare function saveCommunityPatterns(patterns: Array<{
63
+ category: string;
64
+ description: string;
65
+ popularity: number;
66
+ }>): void;
67
+ export declare function saveCommunityTrends(trends: Array<{
68
+ pattern: string;
69
+ direction: string;
70
+ change: number;
71
+ }>): void;
72
+ export declare function saveCommunityRankings(rankings: Array<{
73
+ name: string;
74
+ score: number;
75
+ patterns: number;
76
+ }>): void;
77
+ export declare function getCommunityPatterns(): Record<string, unknown> | null;
78
+ export declare function getCommunityTrends(): Record<string, unknown> | null;
79
+ export declare function getCommunityRankings(): Record<string, unknown> | null;
80
+ export declare function populateAllLayers(scanResult: {
81
+ profile: Record<string, unknown>;
82
+ patterns: Array<{
83
+ type: string;
84
+ category: string;
85
+ value: string;
86
+ count: number;
87
+ trustScore: number;
88
+ }>;
89
+ project: string;
90
+ }): void;
91
+ export { CELL_DIR, LAYERS };
92
+ //# sourceMappingURL=layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../src/layers.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,QAAQ,QAA2C,CAAC;AAC1D,QAAA,MAAM,MAAM,4CAA6C,CAAC;AAoB1D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,IAAI,CAKP;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAK3H;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAKjI;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,IAAI,CAKrH;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKvG;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEnE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEjE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAElE;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAErE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEnE;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAKtG;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAKtG;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAK9G;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE/D;AAED,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEhE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAElE;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAK1H;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAK/G;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAK9G;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAErE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEnE;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAErE;AAID,wBAAgB,iBAAiB,CAAC,UAAU,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtG,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAwCP;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC"}
package/dist/layers.js ADDED
@@ -0,0 +1,226 @@
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.LAYERS = exports.CELL_DIR = void 0;
37
+ exports.savePersonalProfile = savePersonalProfile;
38
+ exports.savePersonalStyle = savePersonalStyle;
39
+ exports.savePersonalErrors = savePersonalErrors;
40
+ exports.savePersonalDecisions = savePersonalDecisions;
41
+ exports.savePersonalSession = savePersonalSession;
42
+ exports.getPersonalProfile = getPersonalProfile;
43
+ exports.getPersonalStyle = getPersonalStyle;
44
+ exports.getPersonalErrors = getPersonalErrors;
45
+ exports.getPersonalDecisions = getPersonalDecisions;
46
+ exports.getPersonalSession = getPersonalSession;
47
+ exports.saveTeamMembers = saveTeamMembers;
48
+ exports.saveTeamPatterns = saveTeamPatterns;
49
+ exports.saveTeamBlindSpots = saveTeamBlindSpots;
50
+ exports.getTeamMembers = getTeamMembers;
51
+ exports.getTeamPatterns = getTeamPatterns;
52
+ exports.getTeamBlindSpots = getTeamBlindSpots;
53
+ exports.saveCommunityPatterns = saveCommunityPatterns;
54
+ exports.saveCommunityTrends = saveCommunityTrends;
55
+ exports.saveCommunityRankings = saveCommunityRankings;
56
+ exports.getCommunityPatterns = getCommunityPatterns;
57
+ exports.getCommunityTrends = getCommunityTrends;
58
+ exports.getCommunityRankings = getCommunityRankings;
59
+ exports.populateAllLayers = populateAllLayers;
60
+ const fs = __importStar(require("fs"));
61
+ const path = __importStar(require("path"));
62
+ const os = __importStar(require("os"));
63
+ const CELL_DIR = path.join(os.homedir(), '.fivo', 'cell');
64
+ exports.CELL_DIR = CELL_DIR;
65
+ const LAYERS = ['personal', 'team', 'community'];
66
+ exports.LAYERS = LAYERS;
67
+ function ensureDirs() {
68
+ for (const layer of LAYERS) {
69
+ const dir = path.join(CELL_DIR, layer);
70
+ if (!fs.existsSync(dir))
71
+ fs.mkdirSync(dir, { recursive: true });
72
+ }
73
+ }
74
+ function writeJson(file, data) {
75
+ ensureDirs();
76
+ fs.writeFileSync(file, JSON.stringify(data, null, 2), 'utf-8');
77
+ }
78
+ function readJson(file) {
79
+ try {
80
+ return JSON.parse(fs.readFileSync(file, 'utf-8'));
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ }
86
+ // ─── Personal Layer ──────────────────────────────────────────────────────────
87
+ function savePersonalProfile(profile) {
88
+ writeJson(path.join(CELL_DIR, 'personal', 'profile.json'), {
89
+ ...profile,
90
+ updatedAt: new Date().toISOString(),
91
+ });
92
+ }
93
+ function savePersonalStyle(patterns) {
94
+ writeJson(path.join(CELL_DIR, 'personal', 'style.json'), {
95
+ patterns,
96
+ updatedAt: new Date().toISOString(),
97
+ });
98
+ }
99
+ function savePersonalErrors(errors) {
100
+ writeJson(path.join(CELL_DIR, 'personal', 'errors.json'), {
101
+ patterns: errors,
102
+ updatedAt: new Date().toISOString(),
103
+ });
104
+ }
105
+ function savePersonalDecisions(decisions) {
106
+ writeJson(path.join(CELL_DIR, 'personal', 'decisions.json'), {
107
+ decisions,
108
+ updatedAt: new Date().toISOString(),
109
+ });
110
+ }
111
+ function savePersonalSession(session) {
112
+ writeJson(path.join(CELL_DIR, 'personal', 'session.json'), {
113
+ ...session,
114
+ updatedAt: new Date().toISOString(),
115
+ });
116
+ }
117
+ function getPersonalProfile() {
118
+ return readJson(path.join(CELL_DIR, 'personal', 'profile.json'));
119
+ }
120
+ function getPersonalStyle() {
121
+ return readJson(path.join(CELL_DIR, 'personal', 'style.json'));
122
+ }
123
+ function getPersonalErrors() {
124
+ return readJson(path.join(CELL_DIR, 'personal', 'errors.json'));
125
+ }
126
+ function getPersonalDecisions() {
127
+ return readJson(path.join(CELL_DIR, 'personal', 'decisions.json'));
128
+ }
129
+ function getPersonalSession() {
130
+ return readJson(path.join(CELL_DIR, 'personal', 'session.json'));
131
+ }
132
+ // ─── Team Layer ──────────────────────────────────────────────────────────────
133
+ function saveTeamMembers(members) {
134
+ writeJson(path.join(CELL_DIR, 'team', 'members.json'), {
135
+ members,
136
+ updatedAt: new Date().toISOString(),
137
+ });
138
+ }
139
+ function saveTeamPatterns(patterns) {
140
+ writeJson(path.join(CELL_DIR, 'team', 'shared.json'), {
141
+ patterns,
142
+ updatedAt: new Date().toISOString(),
143
+ });
144
+ }
145
+ function saveTeamBlindSpots(blindSpots) {
146
+ writeJson(path.join(CELL_DIR, 'team', 'blindspots.json'), {
147
+ blindSpots,
148
+ updatedAt: new Date().toISOString(),
149
+ });
150
+ }
151
+ function getTeamMembers() {
152
+ return readJson(path.join(CELL_DIR, 'team', 'members.json'));
153
+ }
154
+ function getTeamPatterns() {
155
+ return readJson(path.join(CELL_DIR, 'team', 'shared.json'));
156
+ }
157
+ function getTeamBlindSpots() {
158
+ return readJson(path.join(CELL_DIR, 'team', 'blindspots.json'));
159
+ }
160
+ // ─── Community Layer ─────────────────────────────────────────────────────────
161
+ function saveCommunityPatterns(patterns) {
162
+ writeJson(path.join(CELL_DIR, 'community', 'patterns.json'), {
163
+ patterns,
164
+ updatedAt: new Date().toISOString(),
165
+ });
166
+ }
167
+ function saveCommunityTrends(trends) {
168
+ writeJson(path.join(CELL_DIR, 'community', 'trends.json'), {
169
+ trends,
170
+ updatedAt: new Date().toISOString(),
171
+ });
172
+ }
173
+ function saveCommunityRankings(rankings) {
174
+ writeJson(path.join(CELL_DIR, 'community', 'rankings.json'), {
175
+ rankings,
176
+ updatedAt: new Date().toISOString(),
177
+ });
178
+ }
179
+ function getCommunityPatterns() {
180
+ return readJson(path.join(CELL_DIR, 'community', 'patterns.json'));
181
+ }
182
+ function getCommunityTrends() {
183
+ return readJson(path.join(CELL_DIR, 'community', 'trends.json'));
184
+ }
185
+ function getCommunityRankings() {
186
+ return readJson(path.join(CELL_DIR, 'community', 'rankings.json'));
187
+ }
188
+ // ─── Scan → Populate All Layers ──────────────────────────────────────────────
189
+ function populateAllLayers(scanResult) {
190
+ // 1. Personal layer
191
+ const p = scanResult.profile;
192
+ savePersonalProfile({
193
+ namingStyle: p.namingStyle || 'unknown',
194
+ quoteStyle: p.quoteStyle || 'unknown',
195
+ semicolonStyle: p.semicolonStyle || 'unknown',
196
+ indentStyle: p.indentStyle || 'unknown',
197
+ functionStyle: p.functionStyle || 'unknown',
198
+ asyncStyle: p.asyncStyle || 'unknown',
199
+ errorHandling: p.errorHandling || 'unknown',
200
+ architectureStyle: p.architectureStyle || 'unknown',
201
+ testPattern: p.testPattern || 'unknown',
202
+ strengths: p.strengths || [],
203
+ improvements: p.improvements || [],
204
+ topPatterns: p.topPatterns || [],
205
+ });
206
+ savePersonalStyle(scanResult.patterns.filter((p) => p.category === 'style'));
207
+ // 2. Team layer — extract team-relevant patterns
208
+ const teamPatterns = scanResult.patterns
209
+ .filter((p) => ['architecture', 'testing', 'error_handling'].includes(p.category))
210
+ .map((p) => ({ name: p.category, value: p.value, count: p.count }));
211
+ saveTeamPatterns(teamPatterns);
212
+ const blindSpots = (p.improvements || []).map((i) => ({
213
+ issue: i,
214
+ severity: 'medium',
215
+ count: 1,
216
+ }));
217
+ saveTeamBlindSpots(blindSpots);
218
+ // 3. Community layer — extract community-relevant patterns
219
+ const communityPatterns = scanResult.patterns.map((p) => ({
220
+ category: p.category,
221
+ description: `${p.value} (${p.count}x)`,
222
+ popularity: p.confidence,
223
+ }));
224
+ saveCommunityPatterns(communityPatterns);
225
+ }
226
+ //# sourceMappingURL=layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../src/layers.ts"],"names":[],"mappings":"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"}