fivocell 2.0.0 → 3.1.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.
- package/README.md +104 -697
- package/dist/behavioral-tracker.d.ts +90 -0
- package/dist/behavioral-tracker.d.ts.map +1 -0
- package/dist/behavioral-tracker.js +185 -0
- package/dist/behavioral-tracker.js.map +1 -0
- package/dist/cli.d.ts +1 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +430 -3862
- package/dist/cli.js.map +1 -1
- package/dist/code-scanner.d.ts +51 -0
- package/dist/code-scanner.d.ts.map +1 -0
- package/dist/code-scanner.js +966 -0
- package/dist/code-scanner.js.map +1 -0
- package/dist/community-intel.d.ts +34 -0
- package/dist/community-intel.d.ts.map +1 -0
- package/dist/community-intel.js +148 -0
- package/dist/community-intel.js.map +1 -0
- package/dist/cross-model-engine.d.ts +38 -0
- package/dist/cross-model-engine.d.ts.map +1 -0
- package/dist/cross-model-engine.js +98 -0
- package/dist/cross-model-engine.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +0 -15
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +88 -231
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +403 -19
- package/dist/daemon/server.js.map +1 -1
- package/dist/developer-intelligence.d.ts +18 -0
- package/dist/developer-intelligence.d.ts.map +1 -0
- package/dist/developer-intelligence.js +180 -0
- package/dist/developer-intelligence.js.map +1 -0
- package/dist/layers.d.ts +92 -0
- package/dist/layers.d.ts.map +1 -0
- package/dist/layers.js +226 -0
- package/dist/layers.js.map +1 -0
- package/dist/mcp-server.d.ts +194 -1842
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +169 -875
- package/dist/mcp-server.js.map +1 -1
- package/dist/pc-scanner.d.ts +46 -0
- package/dist/pc-scanner.d.ts.map +1 -0
- package/dist/pc-scanner.js +488 -0
- package/dist/pc-scanner.js.map +1 -0
- package/dist/predictive-engine.d.ts +19 -0
- package/dist/predictive-engine.d.ts.map +1 -0
- package/dist/predictive-engine.js +107 -0
- package/dist/predictive-engine.js.map +1 -0
- package/dist/style-pull.d.ts +1 -1
- package/dist/style-pull.js +2 -2
- package/dist/team-git.d.ts +47 -0
- package/dist/team-git.d.ts.map +1 -0
- package/dist/team-git.js +305 -0
- package/dist/team-git.js.map +1 -0
- 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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"}
|
package/dist/layers.d.ts
ADDED
|
@@ -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":"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"}
|
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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"}
|