fivocell 4.5.0 → 4.7.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 (64) hide show
  1. package/dist/__tests__/context-ranker.test.d.ts +2 -0
  2. package/dist/__tests__/context-ranker.test.d.ts.map +1 -0
  3. package/dist/__tests__/context-ranker.test.js +61 -0
  4. package/dist/__tests__/context-ranker.test.js.map +1 -0
  5. package/dist/__tests__/cross-project-memory.test.d.ts +2 -0
  6. package/dist/__tests__/cross-project-memory.test.d.ts.map +1 -0
  7. package/dist/__tests__/cross-project-memory.test.js +105 -0
  8. package/dist/__tests__/cross-project-memory.test.js.map +1 -0
  9. package/dist/__tests__/memory-charts.test.d.ts +2 -0
  10. package/dist/__tests__/memory-charts.test.d.ts.map +1 -0
  11. package/dist/__tests__/memory-charts.test.js +52 -0
  12. package/dist/__tests__/memory-charts.test.js.map +1 -0
  13. package/dist/__tests__/memory-compact.test.d.ts +2 -0
  14. package/dist/__tests__/memory-compact.test.d.ts.map +1 -0
  15. package/dist/__tests__/memory-compact.test.js +43 -0
  16. package/dist/__tests__/memory-compact.test.js.map +1 -0
  17. package/dist/__tests__/memory-insights.test.d.ts +2 -0
  18. package/dist/__tests__/memory-insights.test.d.ts.map +1 -0
  19. package/dist/__tests__/memory-insights.test.js +71 -0
  20. package/dist/__tests__/memory-insights.test.js.map +1 -0
  21. package/dist/__tests__/summary-generator.test.d.ts +2 -0
  22. package/dist/__tests__/summary-generator.test.d.ts.map +1 -0
  23. package/dist/__tests__/summary-generator.test.js +53 -0
  24. package/dist/__tests__/summary-generator.test.js.map +1 -0
  25. package/dist/walls/01-context/context/prompt-builder.d.ts +7 -0
  26. package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
  27. package/dist/walls/01-context/context/prompt-builder.js +29 -0
  28. package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
  29. package/dist/walls/06-memory/archive/memory-compact.d.ts +17 -0
  30. package/dist/walls/06-memory/archive/memory-compact.d.ts.map +1 -0
  31. package/dist/walls/06-memory/archive/memory-compact.js +128 -0
  32. package/dist/walls/06-memory/archive/memory-compact.js.map +1 -0
  33. package/dist/walls/06-memory/database/database.d.ts.map +1 -1
  34. package/dist/walls/06-memory/database/database.js +16 -1
  35. package/dist/walls/06-memory/database/database.js.map +1 -1
  36. package/dist/walls/06-memory/stores/context-ranker.d.ts +21 -0
  37. package/dist/walls/06-memory/stores/context-ranker.d.ts.map +1 -0
  38. package/dist/walls/06-memory/stores/context-ranker.js +84 -0
  39. package/dist/walls/06-memory/stores/context-ranker.js.map +1 -0
  40. package/dist/walls/06-memory/stores/cross-project-memory.d.ts +53 -0
  41. package/dist/walls/06-memory/stores/cross-project-memory.d.ts.map +1 -0
  42. package/dist/walls/06-memory/stores/cross-project-memory.js +200 -0
  43. package/dist/walls/06-memory/stores/cross-project-memory.js.map +1 -0
  44. package/dist/walls/06-memory/stores/memory-charts.d.ts +14 -0
  45. package/dist/walls/06-memory/stores/memory-charts.d.ts.map +1 -0
  46. package/dist/walls/06-memory/stores/memory-charts.js +128 -0
  47. package/dist/walls/06-memory/stores/memory-charts.js.map +1 -0
  48. package/dist/walls/06-memory/stores/memory-insights.d.ts +26 -0
  49. package/dist/walls/06-memory/stores/memory-insights.d.ts.map +1 -0
  50. package/dist/walls/06-memory/stores/memory-insights.js +218 -0
  51. package/dist/walls/06-memory/stores/memory-insights.js.map +1 -0
  52. package/dist/walls/06-memory/stores/summary-generator.d.ts +16 -0
  53. package/dist/walls/06-memory/stores/summary-generator.d.ts.map +1 -0
  54. package/dist/walls/06-memory/stores/summary-generator.js +151 -0
  55. package/dist/walls/06-memory/stores/summary-generator.js.map +1 -0
  56. package/dist/walls/07-runtime/cli/cli.js +268 -0
  57. package/dist/walls/07-runtime/cli/cli.js.map +1 -1
  58. package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
  59. package/dist/walls/07-runtime/daemon/server.js +156 -0
  60. package/dist/walls/07-runtime/daemon/server.js.map +1 -1
  61. package/dist/walls/07-runtime/watcher/live-watcher.d.ts.map +1 -1
  62. package/dist/walls/07-runtime/watcher/live-watcher.js +32 -0
  63. package/dist/walls/07-runtime/watcher/live-watcher.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ export interface SharedPattern {
2
+ id: string;
3
+ sourceProject: string;
4
+ category: string;
5
+ pattern: string;
6
+ confidence: number;
7
+ language?: string;
8
+ framework?: string;
9
+ successRate: number;
10
+ sharedAt: string;
11
+ }
12
+ export interface CrossProjectInsight {
13
+ sourceProject: string;
14
+ targetProject: string;
15
+ compatiblePatterns: Array<{
16
+ pattern: string;
17
+ compatibility: number;
18
+ reason: string;
19
+ }>;
20
+ sharedErrors: Array<{
21
+ error: string;
22
+ count: number;
23
+ projects: string[];
24
+ }>;
25
+ sharedDecisions: Array<{
26
+ decision: string;
27
+ project: string;
28
+ outcome: string;
29
+ }>;
30
+ }
31
+ export declare function sharePatternToMemory(projectDir: string, pattern: {
32
+ category: string;
33
+ rule: string;
34
+ language?: string;
35
+ framework?: string;
36
+ successRate?: number;
37
+ }): string;
38
+ export declare function getSharedPatterns(projectDir: string, category?: string): SharedPattern[];
39
+ export declare function getCompatiblePatterns(targetProject: string, targetStack: string[]): SharedPattern[];
40
+ export declare function getCrossProjectInsights(projectDir: string, allProjectDirs: string[]): CrossProjectInsight;
41
+ export declare function getCrossProjectStats(): {
42
+ totalPatterns: number;
43
+ totalProjects: number;
44
+ topCategories: Array<{
45
+ category: string;
46
+ count: number;
47
+ }>;
48
+ topProjects: Array<{
49
+ project: string;
50
+ count: number;
51
+ }>;
52
+ };
53
+ //# sourceMappingURL=cross-project-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-project-memory.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/stores/cross-project-memory.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1E,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChF;AAUD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACvG,MAAM,CAuBR;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAaxF;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAenG;AAmBD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,mBAAmB,CA+CzG;AAyBD,wBAAgB,oBAAoB,IAAI;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,WAAW,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD,CAqBA"}
@@ -0,0 +1,200 @@
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.sharePatternToMemory = sharePatternToMemory;
37
+ exports.getSharedPatterns = getSharedPatterns;
38
+ exports.getCompatiblePatterns = getCompatiblePatterns;
39
+ exports.getCrossProjectInsights = getCrossProjectInsights;
40
+ exports.getCrossProjectStats = getCrossProjectStats;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const database_1 = require("../database/database");
44
+ function getCrossProjectDir(projectDir) {
45
+ return path.join(projectDir, '.cell', 'cross-project');
46
+ }
47
+ function ensureDir(dir) {
48
+ if (!fs.existsSync(dir))
49
+ fs.mkdirSync(dir, { recursive: true });
50
+ }
51
+ function sharePatternToMemory(projectDir, pattern) {
52
+ const project = path.basename(projectDir);
53
+ const db = (0, database_1.getDb)();
54
+ const result = db.prepare(`
55
+ INSERT INTO memory_patterns (project, category, pattern, language, framework, success_rate, shared_at)
56
+ VALUES (?, ?, ?, ?, ?, ?, datetime('now'))
57
+ `).run(project, pattern.category, pattern.rule, pattern.language || null, pattern.framework || null, pattern.successRate || 0.5);
58
+ const id = String(result.lastInsertRowid);
59
+ // Also save to cross-project directory for portability
60
+ const dir = getCrossProjectDir(projectDir);
61
+ ensureDir(dir);
62
+ const filePath = path.join(dir, `${id}.json`);
63
+ fs.writeFileSync(filePath, JSON.stringify({
64
+ id,
65
+ sourceProject: project,
66
+ ...pattern,
67
+ sharedAt: new Date().toISOString(),
68
+ }, null, 2));
69
+ return id;
70
+ }
71
+ function getSharedPatterns(projectDir, category) {
72
+ const db = (0, database_1.getDb)();
73
+ const project = path.basename(projectDir);
74
+ if (category) {
75
+ return db.prepare('SELECT * FROM memory_patterns WHERE project = ? AND category = ? ORDER BY shared_at DESC').all(project, category);
76
+ }
77
+ return db.prepare('SELECT * FROM memory_patterns WHERE project = ? ORDER BY shared_at DESC').all(project);
78
+ }
79
+ function getCompatiblePatterns(targetProject, targetStack) {
80
+ const db = (0, database_1.getDb)();
81
+ const allPatterns = db.prepare('SELECT * FROM memory_patterns ORDER BY success_rate DESC').all();
82
+ return allPatterns
83
+ .filter(p => p.sourceProject !== targetProject)
84
+ .map(p => ({
85
+ ...p,
86
+ _compatibility: calculateCompatibility(p, targetStack),
87
+ }))
88
+ .filter((p) => p._compatibility > 0.3)
89
+ .sort((a, b) => b._compatibility - a._compatibility)
90
+ .slice(0, 20);
91
+ }
92
+ function calculateCompatibility(pattern, targetStack) {
93
+ let score = 0.3; // base score
94
+ // Language/framework match
95
+ if (pattern.language && targetStack.some(s => s.toLowerCase().includes(pattern.language.toLowerCase()))) {
96
+ score += 0.4;
97
+ }
98
+ if (pattern.framework && targetStack.some(s => s.toLowerCase().includes(pattern.framework.toLowerCase()))) {
99
+ score += 0.3;
100
+ }
101
+ // Success rate boost
102
+ score += pattern.successRate * 0.2;
103
+ return Math.min(score, 1.0);
104
+ }
105
+ function getCrossProjectInsights(projectDir, allProjectDirs) {
106
+ const targetProject = path.basename(projectDir);
107
+ const targetStack = getProjectStack(projectDir);
108
+ const compatiblePatterns = getCompatiblePatterns(targetProject, targetStack).map(p => ({
109
+ pattern: p.pattern,
110
+ compatibility: calculateCompatibility(p, targetStack),
111
+ reason: `From ${p.sourceProject} (${p.language || 'unknown'})`,
112
+ }));
113
+ // Find shared errors across projects
114
+ const db = (0, database_1.getDb)();
115
+ const sharedErrors = db.prepare(`
116
+ SELECT summary as error, COUNT(DISTINCT project) as project_count,
117
+ GROUP_CONCAT(DISTINCT project) as projects
118
+ FROM memory_events
119
+ WHERE type = 'error'
120
+ GROUP BY summary
121
+ HAVING project_count >= 2
122
+ ORDER BY project_count DESC
123
+ LIMIT 10
124
+ `).all();
125
+ // Find shared decisions
126
+ const sharedDecisions = db.prepare(`
127
+ SELECT summary as decision, project,
128
+ COALESCE(
129
+ (SELECT summary FROM memory_events WHERE type = 'fix' AND topic IS NOT NULL LIMIT 1),
130
+ 'unknown'
131
+ ) as outcome
132
+ FROM memory_events
133
+ WHERE type = 'decision'
134
+ ORDER BY importance DESC
135
+ LIMIT 10
136
+ `).all();
137
+ return {
138
+ sourceProject: targetProject,
139
+ targetProject,
140
+ compatiblePatterns,
141
+ sharedErrors: sharedErrors.map(e => ({
142
+ error: e.error,
143
+ count: e.project_count,
144
+ projects: e.projects.split(','),
145
+ })),
146
+ sharedDecisions,
147
+ };
148
+ }
149
+ function getProjectStack(projectDir) {
150
+ const stack = [];
151
+ try {
152
+ const pkgPath = path.join(projectDir, 'package.json');
153
+ if (fs.existsSync(pkgPath)) {
154
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
155
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
156
+ if (deps.react || deps['react-dom'])
157
+ stack.push('React');
158
+ if (deps.vue)
159
+ stack.push('Vue');
160
+ if (deps.angular || deps['@angular/core'])
161
+ stack.push('Angular');
162
+ if (deps.express)
163
+ stack.push('Express');
164
+ if (deps.next)
165
+ stack.push('Next.js');
166
+ if (deps.nuxt)
167
+ stack.push('Nuxt');
168
+ if (deps.typescript)
169
+ stack.push('TypeScript');
170
+ if (deps.jest || deps.vitest)
171
+ stack.push('testing');
172
+ if (deps.prisma || deps.typeorm || deps.sequelize)
173
+ stack.push('ORM');
174
+ if (deps.mongoose || deps.mongodb)
175
+ stack.push('MongoDB');
176
+ if (deps.pg || deps.mysql2 || deps.better_sqlite3)
177
+ stack.push('SQL');
178
+ }
179
+ }
180
+ catch { }
181
+ return stack;
182
+ }
183
+ function getCrossProjectStats() {
184
+ const db = (0, database_1.getDb)();
185
+ const totalRow = db.prepare('SELECT COUNT(*) as c FROM memory_patterns').get();
186
+ const projectsRow = db.prepare('SELECT COUNT(DISTINCT project) as c FROM memory_patterns').get();
187
+ const categories = db.prepare(`
188
+ SELECT category, COUNT(*) as c FROM memory_patterns GROUP BY category ORDER BY c DESC LIMIT 10
189
+ `).all();
190
+ const projects = db.prepare(`
191
+ SELECT project, COUNT(*) as c FROM memory_patterns GROUP BY project ORDER BY c DESC LIMIT 10
192
+ `).all();
193
+ return {
194
+ totalPatterns: totalRow.c,
195
+ totalProjects: projectsRow.c,
196
+ topCategories: categories.map(c => ({ category: c.category, count: c.c })),
197
+ topProjects: projects.map(p => ({ project: p.project, count: p.c })),
198
+ };
199
+ }
200
+ //# sourceMappingURL=cross-project-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-project-memory.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/stores/cross-project-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface ChartData {
2
+ labels: string[];
3
+ datasets: Array<{
4
+ label: string;
5
+ data: number[];
6
+ color?: string;
7
+ }>;
8
+ }
9
+ export declare function renderActivityChart(project: string, days?: number): string;
10
+ export declare function renderTypeDistribution(project: string): string;
11
+ export declare function renderImportanceChart(project: string): string;
12
+ export declare function renderTimelineChart(project: string, days?: number): string;
13
+ export declare function renderFullDashboard(project: string): string;
14
+ //# sourceMappingURL=memory-charts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-charts.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/stores/memory-charts.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAkC9E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgC9D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA+B7D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,MAAM,CA2B7E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS3D"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderActivityChart = renderActivityChart;
4
+ exports.renderTypeDistribution = renderTypeDistribution;
5
+ exports.renderImportanceChart = renderImportanceChart;
6
+ exports.renderTimelineChart = renderTimelineChart;
7
+ exports.renderFullDashboard = renderFullDashboard;
8
+ const database_1 = require("../database/database");
9
+ function renderActivityChart(project, days = 14) {
10
+ const db = (0, database_1.getDb)();
11
+ const since = new Date(Date.now() - days * 86400000).toISOString().slice(0, 10);
12
+ const rows = db.prepare(`
13
+ SELECT date(created_at) as day, COUNT(*) as c
14
+ FROM memory_events
15
+ WHERE project = ? AND date(created_at) >= date(?)
16
+ GROUP BY day ORDER BY day
17
+ `).all(project, since);
18
+ const rowMap = new Map(rows.map(r => [r.day, r.c]));
19
+ const lines = [];
20
+ lines.push(` ── Activity Chart (${days} days) ──`);
21
+ lines.push('');
22
+ const maxCount = Math.max(...rows.map(r => r.c), 1);
23
+ const barWidth = 30;
24
+ for (let i = days - 1; i >= 0; i--) {
25
+ const d = new Date(Date.now() - i * 86400000).toISOString().slice(0, 10);
26
+ const count = rowMap.get(d) || 0;
27
+ const barLen = Math.round((count / maxCount) * barWidth);
28
+ const bar = '█'.repeat(barLen) + '░'.repeat(barWidth - barLen);
29
+ const dayShort = d.slice(5); // MM-DD
30
+ lines.push(` ${dayShort} ${bar} ${count}`);
31
+ }
32
+ lines.push('');
33
+ const total = rows.reduce((s, r) => s + r.c, 0);
34
+ const avg = rows.length > 0 ? Math.round(total / rows.length * 10) / 10 : 0;
35
+ lines.push(` Total: ${total} | Avg/day: ${avg} | Max: ${maxCount}`);
36
+ return lines.join('\n');
37
+ }
38
+ function renderTypeDistribution(project) {
39
+ const db = (0, database_1.getDb)();
40
+ const rows = db.prepare(`
41
+ SELECT type, COUNT(*) as c FROM memory_events
42
+ WHERE project = ?
43
+ GROUP BY type ORDER BY c DESC
44
+ `).all(project);
45
+ const lines = [];
46
+ lines.push(' ── Event Type Distribution ──');
47
+ lines.push('');
48
+ const maxCount = Math.max(...rows.map(r => r.c), 1);
49
+ const barWidth = 25;
50
+ const colors = {
51
+ decision: '🟢', error: '🔴', edit: '🔵', fix: '🟡',
52
+ file_event: '⚪', publish: '🟣', handoff: '🟠', pattern: '⭐',
53
+ verification: '✅', risk: '⚠️', question: '❓', session: '📋',
54
+ branch: '🌿', style: '🎨', ai_work: '🤖',
55
+ };
56
+ for (const row of rows) {
57
+ const barLen = Math.round((row.c / maxCount) * barWidth);
58
+ const bar = '█'.repeat(barLen);
59
+ const icon = colors[row.type] || '📊';
60
+ lines.push(` ${icon} ${row.type.padEnd(14)} ${bar} ${row.c}`);
61
+ }
62
+ lines.push('');
63
+ lines.push(` Total: ${rows.reduce((s, r) => s + r.c, 0)} events`);
64
+ return lines.join('\n');
65
+ }
66
+ function renderImportanceChart(project) {
67
+ const db = (0, database_1.getDb)();
68
+ const rows = db.prepare(`
69
+ SELECT
70
+ CASE
71
+ WHEN importance >= 8 THEN '8-10 (Critical)'
72
+ WHEN importance >= 5 THEN '5-7 (Medium)'
73
+ WHEN importance >= 3 THEN '3-4 (Low)'
74
+ ELSE '1-2 (Minimal)'
75
+ END as tier,
76
+ COUNT(*) as c
77
+ FROM memory_events
78
+ WHERE project = ?
79
+ GROUP BY tier
80
+ ORDER BY MIN(importance) DESC
81
+ `).all(project);
82
+ const lines = [];
83
+ lines.push(' ── Importance Distribution ──');
84
+ lines.push('');
85
+ const maxCount = Math.max(...rows.map(r => r.c), 1);
86
+ const barWidth = 25;
87
+ for (const row of rows) {
88
+ const barLen = Math.round((row.c / maxCount) * barWidth);
89
+ const bar = '█'.repeat(barLen);
90
+ lines.push(` ${row.tier.padEnd(20)} ${bar} ${row.c}`);
91
+ }
92
+ return lines.join('\n');
93
+ }
94
+ function renderTimelineChart(project, days = 7) {
95
+ const db = (0, database_1.getDb)();
96
+ const lines = [];
97
+ lines.push(` ── Hourly Activity (last ${days} days) ──`);
98
+ lines.push('');
99
+ const since = new Date(Date.now() - days * 86400000).toISOString();
100
+ const rows = db.prepare(`
101
+ SELECT CAST(strftime('%H', created_at) AS INTEGER) as hour, COUNT(*) as c
102
+ FROM memory_events
103
+ WHERE project = ? AND created_at >= ?
104
+ GROUP BY hour ORDER BY hour
105
+ `).all(project, since);
106
+ const hourMap = new Map(rows.map(r => [r.hour, r.c]));
107
+ const maxCount = Math.max(...rows.map(r => r.c), 1);
108
+ const barWidth = 25;
109
+ for (let h = 0; h < 24; h++) {
110
+ const count = hourMap.get(h) || 0;
111
+ const barLen = Math.round((count / maxCount) * barWidth);
112
+ const bar = '█'.repeat(barLen);
113
+ const label = h.toString().padStart(2, '0') + ':00';
114
+ lines.push(` ${label} ${bar} ${count}`);
115
+ }
116
+ return lines.join('\n');
117
+ }
118
+ function renderFullDashboard(project) {
119
+ const sections = [
120
+ renderActivityChart(project, 14),
121
+ '',
122
+ renderTypeDistribution(project),
123
+ '',
124
+ renderImportanceChart(project),
125
+ ];
126
+ return sections.join('\n');
127
+ }
128
+ //# sourceMappingURL=memory-charts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-charts.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/stores/memory-charts.ts"],"names":[],"mappings":";;AAOA,kDAkCC;AAED,wDAgCC;AAED,sDA+BC;AAED,kDA2BC;AAED,kDASC;AApJD,mDAA6C;AAO7C,SAAgB,mBAAmB,CAAC,OAAe,EAAE,OAAe,EAAE;IACpE,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAC;IACnB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAsC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,WAAW,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,eAAe,GAAG,WAAW,QAAQ,EAAE,CAAC,CAAC;IAErE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAe;IACpD,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIvB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAuC,CAAC;IAEtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,MAAM,GAA2B;QACrC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI;QAClD,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG;QAC3D,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI;QAC3D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;KACzC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAe;IACnD,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;GAavB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAuC,CAAC;IAEtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAe,EAAE,OAAe,CAAC;IACnE,MAAM,EAAE,GAAG,IAAA,gBAAK,GAAE,CAAC;IACnB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,WAAW,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAuC,CAAC;IAE7D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,QAAQ,GAAG;QACf,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC;QAChC,EAAE;QACF,sBAAsB,CAAC,OAAO,CAAC;QAC/B,EAAE;QACF,qBAAqB,CAAC,OAAO,CAAC;KAC/B,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,26 @@
1
+ export interface MemoryInsight {
2
+ type: 'trend' | 'risk' | 'pattern' | 'recommendation' | 'milestone';
3
+ severity: 'info' | 'warning' | 'critical';
4
+ title: string;
5
+ description: string;
6
+ evidence: string[];
7
+ confidence: number;
8
+ category: string;
9
+ createdAt: string;
10
+ }
11
+ export interface TrendData {
12
+ period: string;
13
+ eventCount: number;
14
+ avgImportance: number;
15
+ topType: string;
16
+ errorRate: number;
17
+ decisionRate: number;
18
+ }
19
+ export declare function generateMemoryInsights(project: string, days?: number): MemoryInsight[];
20
+ export declare function getInsightSummary(project: string, days?: number): {
21
+ total: number;
22
+ byType: Record<string, number>;
23
+ bySeverity: Record<string, number>;
24
+ topInsights: MemoryInsight[];
25
+ };
26
+ //# sourceMappingURL=memory-insights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-insights.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/stores/memory-insights.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,CAAC;IACpE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,aAAa,EAAE,CAsE1F;AA2JD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B,CAgBA"}