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.
- package/dist/__tests__/context-ranker.test.d.ts +2 -0
- package/dist/__tests__/context-ranker.test.d.ts.map +1 -0
- package/dist/__tests__/context-ranker.test.js +61 -0
- package/dist/__tests__/context-ranker.test.js.map +1 -0
- package/dist/__tests__/cross-project-memory.test.d.ts +2 -0
- package/dist/__tests__/cross-project-memory.test.d.ts.map +1 -0
- package/dist/__tests__/cross-project-memory.test.js +105 -0
- package/dist/__tests__/cross-project-memory.test.js.map +1 -0
- package/dist/__tests__/memory-charts.test.d.ts +2 -0
- package/dist/__tests__/memory-charts.test.d.ts.map +1 -0
- package/dist/__tests__/memory-charts.test.js +52 -0
- package/dist/__tests__/memory-charts.test.js.map +1 -0
- package/dist/__tests__/memory-compact.test.d.ts +2 -0
- package/dist/__tests__/memory-compact.test.d.ts.map +1 -0
- package/dist/__tests__/memory-compact.test.js +43 -0
- package/dist/__tests__/memory-compact.test.js.map +1 -0
- package/dist/__tests__/memory-insights.test.d.ts +2 -0
- package/dist/__tests__/memory-insights.test.d.ts.map +1 -0
- package/dist/__tests__/memory-insights.test.js +71 -0
- package/dist/__tests__/memory-insights.test.js.map +1 -0
- package/dist/__tests__/summary-generator.test.d.ts +2 -0
- package/dist/__tests__/summary-generator.test.d.ts.map +1 -0
- package/dist/__tests__/summary-generator.test.js +53 -0
- package/dist/__tests__/summary-generator.test.js.map +1 -0
- package/dist/walls/01-context/context/prompt-builder.d.ts +7 -0
- package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
- package/dist/walls/01-context/context/prompt-builder.js +29 -0
- package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
- package/dist/walls/06-memory/archive/memory-compact.d.ts +17 -0
- package/dist/walls/06-memory/archive/memory-compact.d.ts.map +1 -0
- package/dist/walls/06-memory/archive/memory-compact.js +128 -0
- package/dist/walls/06-memory/archive/memory-compact.js.map +1 -0
- package/dist/walls/06-memory/database/database.d.ts.map +1 -1
- package/dist/walls/06-memory/database/database.js +16 -1
- package/dist/walls/06-memory/database/database.js.map +1 -1
- package/dist/walls/06-memory/stores/context-ranker.d.ts +21 -0
- package/dist/walls/06-memory/stores/context-ranker.d.ts.map +1 -0
- package/dist/walls/06-memory/stores/context-ranker.js +84 -0
- package/dist/walls/06-memory/stores/context-ranker.js.map +1 -0
- package/dist/walls/06-memory/stores/cross-project-memory.d.ts +53 -0
- package/dist/walls/06-memory/stores/cross-project-memory.d.ts.map +1 -0
- package/dist/walls/06-memory/stores/cross-project-memory.js +200 -0
- package/dist/walls/06-memory/stores/cross-project-memory.js.map +1 -0
- package/dist/walls/06-memory/stores/memory-charts.d.ts +14 -0
- package/dist/walls/06-memory/stores/memory-charts.d.ts.map +1 -0
- package/dist/walls/06-memory/stores/memory-charts.js +128 -0
- package/dist/walls/06-memory/stores/memory-charts.js.map +1 -0
- package/dist/walls/06-memory/stores/memory-insights.d.ts +26 -0
- package/dist/walls/06-memory/stores/memory-insights.d.ts.map +1 -0
- package/dist/walls/06-memory/stores/memory-insights.js +218 -0
- package/dist/walls/06-memory/stores/memory-insights.js.map +1 -0
- package/dist/walls/06-memory/stores/summary-generator.d.ts +16 -0
- package/dist/walls/06-memory/stores/summary-generator.d.ts.map +1 -0
- package/dist/walls/06-memory/stores/summary-generator.js +151 -0
- package/dist/walls/06-memory/stores/summary-generator.js.map +1 -0
- package/dist/walls/07-runtime/cli/cli.js +268 -0
- package/dist/walls/07-runtime/cli/cli.js.map +1 -1
- package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/server.js +156 -0
- package/dist/walls/07-runtime/daemon/server.js.map +1 -1
- package/dist/walls/07-runtime/watcher/live-watcher.d.ts.map +1 -1
- package/dist/walls/07-runtime/watcher/live-watcher.js +32 -0
- package/dist/walls/07-runtime/watcher/live-watcher.js.map +1 -1
- 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":"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"}
|
|
@@ -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"}
|