cortex-engine 0.4.2 → 0.5.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 +16 -6
- package/dist/bin/anomalies-cmd.d.ts +17 -0
- package/dist/bin/anomalies-cmd.d.ts.map +1 -0
- package/dist/bin/anomalies-cmd.js +417 -0
- package/dist/bin/anomalies-cmd.js.map +1 -0
- package/dist/bin/cli.d.ts +5 -0
- package/dist/bin/cli.d.ts.map +1 -1
- package/dist/bin/cli.js +84 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/health-cmd.d.ts +15 -0
- package/dist/bin/health-cmd.d.ts.map +1 -0
- package/dist/bin/health-cmd.js +273 -0
- package/dist/bin/health-cmd.js.map +1 -0
- package/dist/bin/init.d.ts.map +1 -1
- package/dist/bin/init.js +164 -8
- package/dist/bin/init.js.map +1 -1
- package/dist/bin/maintain-cmd.d.ts +17 -0
- package/dist/bin/maintain-cmd.d.ts.map +1 -0
- package/dist/bin/maintain-cmd.js +352 -0
- package/dist/bin/maintain-cmd.js.map +1 -0
- package/dist/bin/report-cmd.d.ts +17 -0
- package/dist/bin/report-cmd.d.ts.map +1 -0
- package/dist/bin/report-cmd.js +309 -0
- package/dist/bin/report-cmd.js.map +1 -0
- package/dist/bin/store-factory.d.ts +21 -0
- package/dist/bin/store-factory.d.ts.map +1 -0
- package/dist/bin/store-factory.js +64 -0
- package/dist/bin/store-factory.js.map +1 -0
- package/dist/bin/vitals-cmd.d.ts +16 -0
- package/dist/bin/vitals-cmd.d.ts.map +1 -0
- package/dist/bin/vitals-cmd.js +425 -0
- package/dist/bin/vitals-cmd.js.map +1 -0
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/engines/cognition.d.ts.map +1 -1
- package/dist/engines/cognition.js +39 -3
- package/dist/engines/cognition.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +22 -2
- package/dist/mcp/tools.js.map +1 -1
- package/dist/tools/evolution-list.d.ts +6 -0
- package/dist/tools/evolution-list.d.ts.map +1 -0
- package/dist/tools/evolution-list.js +52 -0
- package/dist/tools/evolution-list.js.map +1 -0
- package/dist/tools/evolve.d.ts +6 -0
- package/dist/tools/evolve.d.ts.map +1 -0
- package/dist/tools/evolve.js +63 -0
- package/dist/tools/evolve.js.map +1 -0
- package/dist/tools/journal-read.d.ts +6 -0
- package/dist/tools/journal-read.d.ts.map +1 -0
- package/dist/tools/journal-read.js +59 -0
- package/dist/tools/journal-read.js.map +1 -0
- package/dist/tools/journal-write.d.ts +6 -0
- package/dist/tools/journal-write.d.ts.map +1 -0
- package/dist/tools/journal-write.js +71 -0
- package/dist/tools/journal-write.js.map +1 -0
- package/dist/tools/thread-create.d.ts +6 -0
- package/dist/tools/thread-create.d.ts.map +1 -0
- package/dist/tools/thread-create.js +57 -0
- package/dist/tools/thread-create.js.map +1 -0
- package/dist/tools/thread-resolve.d.ts +6 -0
- package/dist/tools/thread-resolve.d.ts.map +1 -0
- package/dist/tools/thread-resolve.js +42 -0
- package/dist/tools/thread-resolve.js.map +1 -0
- package/dist/tools/thread-update.d.ts +6 -0
- package/dist/tools/thread-update.d.ts.map +1 -0
- package/dist/tools/thread-update.js +91 -0
- package/dist/tools/thread-update.js.map +1 -0
- package/dist/tools/threads-list.d.ts +6 -0
- package/dist/tools/threads-list.d.ts.map +1 -0
- package/dist/tools/threads-list.js +70 -0
- package/dist/tools/threads-list.js.map +1 -0
- package/package.json +119 -115
package/dist/bin/cli.js
CHANGED
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
* serve Start the MCP server
|
|
8
8
|
* config View or edit configuration
|
|
9
9
|
* digest Process documents through cortex
|
|
10
|
+
* health Show cortex health report
|
|
11
|
+
* vitals Show behavioral vitals and PE delta
|
|
12
|
+
* anomalies Detect anomalous sessions with Isolation Forest
|
|
13
|
+
* report Generate weekly quality report
|
|
14
|
+
* maintain Data maintenance (fix, re-embed)
|
|
10
15
|
* help Show help
|
|
11
16
|
*/
|
|
12
17
|
import { loadConfig } from './config-loader.js';
|
|
@@ -14,6 +19,11 @@ import { runInit } from './init.js';
|
|
|
14
19
|
import { runDigest } from './digest-cmd.js';
|
|
15
20
|
import { runConfig } from './config-cmd.js';
|
|
16
21
|
import { runAgent } from './agent-cmd.js';
|
|
22
|
+
import { runHealth } from './health-cmd.js';
|
|
23
|
+
import { runVitals } from './vitals-cmd.js';
|
|
24
|
+
import { runAnomalies } from './anomalies-cmd.js';
|
|
25
|
+
import { runReport } from './report-cmd.js';
|
|
26
|
+
import { runMaintain } from './maintain-cmd.js';
|
|
17
27
|
import { startServer } from '../mcp/server.js';
|
|
18
28
|
// ─── Help ──────────────────────────────────────────────────────────────────
|
|
19
29
|
function printHelp() {
|
|
@@ -28,6 +38,11 @@ Commands:
|
|
|
28
38
|
config View or edit configuration
|
|
29
39
|
agent Manage multi-agent registry
|
|
30
40
|
digest Process documents through cortex
|
|
41
|
+
health Show cortex health report
|
|
42
|
+
vitals Show behavioral vitals and PE delta
|
|
43
|
+
anomalies Detect anomalous sessions (Isolation Forest)
|
|
44
|
+
report Generate weekly quality report (memory, graph, ops, threads)
|
|
45
|
+
maintain Data maintenance (fix data issues, re-embed)
|
|
31
46
|
help Show this help message
|
|
32
47
|
|
|
33
48
|
Serve options:
|
|
@@ -46,6 +61,32 @@ Init options:
|
|
|
46
61
|
--here Scaffold into current directory
|
|
47
62
|
--obsidian Create .obsidian/ structure
|
|
48
63
|
|
|
64
|
+
Health options:
|
|
65
|
+
--prune Soft-delete prune candidates (fades memories meeting 3+ criteria)
|
|
66
|
+
--json Output as JSON instead of formatted table
|
|
67
|
+
|
|
68
|
+
Vitals options:
|
|
69
|
+
--days N Window size in days (default: 30)
|
|
70
|
+
--json Output as JSON instead of formatted table
|
|
71
|
+
|
|
72
|
+
Anomalies options:
|
|
73
|
+
--days N Window size in days (default: 90)
|
|
74
|
+
--json Output as JSON instead of formatted table
|
|
75
|
+
|
|
76
|
+
Report options:
|
|
77
|
+
--days N Report window in days (default: 7)
|
|
78
|
+
--json Output as JSON
|
|
79
|
+
|
|
80
|
+
Maintain subcommands:
|
|
81
|
+
maintain fix Scan and repair data issues in memories
|
|
82
|
+
maintain re-embed Re-embed memories with current embed provider
|
|
83
|
+
|
|
84
|
+
Maintain re-embed flags:
|
|
85
|
+
--dry-run Show what would be re-embedded without writing
|
|
86
|
+
--null-only Only re-embed docs with missing embeddings
|
|
87
|
+
--limit N Max docs to process (default: 500)
|
|
88
|
+
--collection <name> memories | observations (default: memories)
|
|
89
|
+
|
|
49
90
|
Examples:
|
|
50
91
|
fozikio init my-agent
|
|
51
92
|
fozikio init my-agent --store firestore --embed vertex --llm gemini
|
|
@@ -55,6 +96,19 @@ Examples:
|
|
|
55
96
|
fozikio config --store sqlite --embed ollama
|
|
56
97
|
fozikio digest path/to/file.md
|
|
57
98
|
fozikio digest --pending
|
|
99
|
+
fozikio health
|
|
100
|
+
fozikio health --json
|
|
101
|
+
fozikio health --prune
|
|
102
|
+
fozikio vitals
|
|
103
|
+
fozikio vitals --days 14 --json
|
|
104
|
+
fozikio anomalies
|
|
105
|
+
fozikio anomalies --days 60 --json
|
|
106
|
+
fozikio report
|
|
107
|
+
fozikio report --days 14 --json
|
|
108
|
+
fozikio maintain fix
|
|
109
|
+
fozikio maintain fix --dry-run
|
|
110
|
+
fozikio maintain re-embed --null-only
|
|
111
|
+
fozikio maintain re-embed --dry-run
|
|
58
112
|
`);
|
|
59
113
|
}
|
|
60
114
|
// ─── Dispatch ──────────────────────────────────────────────────────────────
|
|
@@ -96,6 +150,36 @@ switch (command) {
|
|
|
96
150
|
process.exit(1);
|
|
97
151
|
});
|
|
98
152
|
break;
|
|
153
|
+
case 'health':
|
|
154
|
+
runHealth(rest).catch(err => {
|
|
155
|
+
console.error('[fozikio] Health error:', err);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
});
|
|
158
|
+
break;
|
|
159
|
+
case 'vitals':
|
|
160
|
+
runVitals(rest).catch(err => {
|
|
161
|
+
console.error('[fozikio] Vitals error:', err);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
});
|
|
164
|
+
break;
|
|
165
|
+
case 'anomalies':
|
|
166
|
+
runAnomalies(rest).catch(err => {
|
|
167
|
+
console.error('[fozikio] Anomalies error:', err);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
});
|
|
170
|
+
break;
|
|
171
|
+
case 'report':
|
|
172
|
+
runReport(rest).catch(err => {
|
|
173
|
+
console.error('[fozikio] Report error:', err);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
});
|
|
176
|
+
break;
|
|
177
|
+
case 'maintain':
|
|
178
|
+
runMaintain(rest).catch(err => {
|
|
179
|
+
console.error('[fozikio] Maintain error:', err);
|
|
180
|
+
process.exit(1);
|
|
181
|
+
});
|
|
182
|
+
break;
|
|
99
183
|
case 'help':
|
|
100
184
|
case '--help':
|
|
101
185
|
case '-h':
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* health-cmd.ts — fozikio health command.
|
|
3
|
+
*
|
|
4
|
+
* Outputs a combined cortex health report covering:
|
|
5
|
+
* - Memory stats (total, salience, FSRS states, stale, low-salience)
|
|
6
|
+
* - Observation stats (total, unprocessed, avg prediction error)
|
|
7
|
+
* - Prune candidates (multi-criteria scoring, dry-run by default)
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* fozikio health Print formatted health report (dry-run)
|
|
11
|
+
* fozikio health --prune Mark prune candidates as faded (soft-delete)
|
|
12
|
+
* fozikio health --json Output as JSON
|
|
13
|
+
*/
|
|
14
|
+
export declare function runHealth(args: string[]): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=health-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/health-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4JH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6L7D"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* health-cmd.ts — fozikio health command.
|
|
3
|
+
*
|
|
4
|
+
* Outputs a combined cortex health report covering:
|
|
5
|
+
* - Memory stats (total, salience, FSRS states, stale, low-salience)
|
|
6
|
+
* - Observation stats (total, unprocessed, avg prediction error)
|
|
7
|
+
* - Prune candidates (multi-criteria scoring, dry-run by default)
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* fozikio health Print formatted health report (dry-run)
|
|
11
|
+
* fozikio health --prune Mark prune candidates as faded (soft-delete)
|
|
12
|
+
* fozikio health --json Output as JSON
|
|
13
|
+
*/
|
|
14
|
+
import { loadConfig } from './config-loader.js';
|
|
15
|
+
import { createStore } from './store-factory.js';
|
|
16
|
+
// ─── Constants ────────────────────────────────────────────────────────────────
|
|
17
|
+
const STALE_DAYS = 90;
|
|
18
|
+
const LOW_SALIENCE_THRESHOLD = 0.1;
|
|
19
|
+
const PRUNE_SALIENCE_THRESHOLD = 0.15;
|
|
20
|
+
const PRUNE_ACCESS_THRESHOLD = 3;
|
|
21
|
+
const PRUNE_AGE_DAYS = 60;
|
|
22
|
+
const PRUNE_CRITERIA_REQUIRED = 3;
|
|
23
|
+
const WIDTH = 52; // inner width between ║ borders
|
|
24
|
+
// ─── ASCII Box Helpers ────────────────────────────────────────────────────────
|
|
25
|
+
function row(label, value) {
|
|
26
|
+
const content = ` ${label.padEnd(28)}${value}`;
|
|
27
|
+
return `║${content.padEnd(WIDTH)}║`;
|
|
28
|
+
}
|
|
29
|
+
function subrow(label, value) {
|
|
30
|
+
const content = ` ${label.padEnd(26)}${value}`;
|
|
31
|
+
return `║${content.padEnd(WIDTH)}║`;
|
|
32
|
+
}
|
|
33
|
+
function header(title) {
|
|
34
|
+
const padded = ` ${title} `;
|
|
35
|
+
const totalPad = WIDTH - padded.length;
|
|
36
|
+
const left = Math.floor(totalPad / 2);
|
|
37
|
+
const right = totalPad - left;
|
|
38
|
+
return `║${' '.repeat(left)}${padded}${' '.repeat(right)}║`;
|
|
39
|
+
}
|
|
40
|
+
function divider() {
|
|
41
|
+
return `╠${'═'.repeat(WIDTH)}╣`;
|
|
42
|
+
}
|
|
43
|
+
function top() {
|
|
44
|
+
return `╔${'═'.repeat(WIDTH)}╗`;
|
|
45
|
+
}
|
|
46
|
+
function bottom() {
|
|
47
|
+
return `╚${'═'.repeat(WIDTH)}╝`;
|
|
48
|
+
}
|
|
49
|
+
function fmt(n, digits = 2) {
|
|
50
|
+
return n.toFixed(digits);
|
|
51
|
+
}
|
|
52
|
+
function fmtCount(n) {
|
|
53
|
+
return n.toLocaleString('en-US');
|
|
54
|
+
}
|
|
55
|
+
function pct(count, total) {
|
|
56
|
+
if (total === 0)
|
|
57
|
+
return '0.0%';
|
|
58
|
+
return `${((count / total) * 100).toFixed(1)}%`;
|
|
59
|
+
}
|
|
60
|
+
function parseArgs(args) {
|
|
61
|
+
return {
|
|
62
|
+
prune: args.includes('--prune'),
|
|
63
|
+
json: args.includes('--json'),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function scorePruneCandidate(memory, edgeIds, now) {
|
|
67
|
+
const reasons = [];
|
|
68
|
+
let score = 0;
|
|
69
|
+
// Criterion 1: low salience
|
|
70
|
+
if (typeof memory.salience === 'number' && memory.salience < PRUNE_SALIENCE_THRESHOLD) {
|
|
71
|
+
score++;
|
|
72
|
+
reasons.push(`salience ${fmt(memory.salience, 3)} < ${PRUNE_SALIENCE_THRESHOLD}`);
|
|
73
|
+
}
|
|
74
|
+
// Criterion 2: low access count
|
|
75
|
+
if (typeof memory.access_count === 'number' && memory.access_count < PRUNE_ACCESS_THRESHOLD) {
|
|
76
|
+
score++;
|
|
77
|
+
reasons.push(`access_count ${memory.access_count} < ${PRUNE_ACCESS_THRESHOLD}`);
|
|
78
|
+
}
|
|
79
|
+
// Criterion 3: FSRS in relearning
|
|
80
|
+
if (memory.fsrs?.state === 'relearning') {
|
|
81
|
+
score++;
|
|
82
|
+
reasons.push('fsrs state: relearning');
|
|
83
|
+
}
|
|
84
|
+
// Criterion 4: no edges
|
|
85
|
+
if (!edgeIds.has(memory.id)) {
|
|
86
|
+
score++;
|
|
87
|
+
reasons.push('no edges (orphan)');
|
|
88
|
+
}
|
|
89
|
+
// Criterion 5: high age
|
|
90
|
+
const ageMs = now - (memory.created_at instanceof Date ? memory.created_at.getTime() : new Date(memory.created_at).getTime());
|
|
91
|
+
const ageDays = ageMs / (1000 * 60 * 60 * 24);
|
|
92
|
+
if (ageDays > PRUNE_AGE_DAYS) {
|
|
93
|
+
score++;
|
|
94
|
+
reasons.push(`age ${Math.floor(ageDays)}d > ${PRUNE_AGE_DAYS}d`);
|
|
95
|
+
}
|
|
96
|
+
if (score < PRUNE_CRITERIA_REQUIRED)
|
|
97
|
+
return null;
|
|
98
|
+
return {
|
|
99
|
+
id: memory.id,
|
|
100
|
+
name: (memory.name ?? memory.id).slice(0, 50),
|
|
101
|
+
score,
|
|
102
|
+
reasons,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// ─── Main ─────────────────────────────────────────────────────────────────────
|
|
106
|
+
export async function runHealth(args) {
|
|
107
|
+
const { prune, json } = parseArgs(args);
|
|
108
|
+
if (!json) {
|
|
109
|
+
console.error('[fozikio health] Loading config...');
|
|
110
|
+
}
|
|
111
|
+
const config = loadConfig();
|
|
112
|
+
const store = await createStore(config);
|
|
113
|
+
if (!json) {
|
|
114
|
+
console.error(`[fozikio health] Backend: ${config.store}. Fetching data...`);
|
|
115
|
+
}
|
|
116
|
+
const now = new Date();
|
|
117
|
+
const staleCutoff = new Date(now);
|
|
118
|
+
staleCutoff.setDate(staleCutoff.getDate() - STALE_DAYS);
|
|
119
|
+
// ── Parallel fetches ──────────────────────────────────────────────────────
|
|
120
|
+
const [memories, unprocessedObs] = await Promise.all([
|
|
121
|
+
store.getAllMemories(),
|
|
122
|
+
store.getUnprocessedObservations(10_000),
|
|
123
|
+
]);
|
|
124
|
+
// Fetch all observations for PE stats — unprocessed are a subset, but we
|
|
125
|
+
// also want total count. Use getUnprocessedObservations with a high limit
|
|
126
|
+
// and then separately query for total via ops query pattern.
|
|
127
|
+
// Note: CortexStore has no getAllObservations(), so we use the generic
|
|
128
|
+
// query() method which returns raw records.
|
|
129
|
+
const allObsRaw = await store.query('observations', [], { limit: 100_000 });
|
|
130
|
+
const allObs = allObsRaw;
|
|
131
|
+
// Get edges to identify orphan memories
|
|
132
|
+
const allMemoryIds = memories.map(m => m.id);
|
|
133
|
+
const edges = allMemoryIds.length > 0
|
|
134
|
+
? await store.getEdgesForMemories(allMemoryIds)
|
|
135
|
+
: [];
|
|
136
|
+
const memoryIdsWithEdges = new Set();
|
|
137
|
+
for (const edge of edges) {
|
|
138
|
+
memoryIdsWithEdges.add(edge.source_id);
|
|
139
|
+
memoryIdsWithEdges.add(edge.target_id);
|
|
140
|
+
}
|
|
141
|
+
// ── Memory stats ──────────────────────────────────────────────────────────
|
|
142
|
+
const totalMemories = memories.length;
|
|
143
|
+
const lowSalienceCount = memories.filter(m => (m.salience ?? 0) < LOW_SALIENCE_THRESHOLD).length;
|
|
144
|
+
const staleCount = memories.filter(m => {
|
|
145
|
+
const la = m.last_accessed instanceof Date
|
|
146
|
+
? m.last_accessed
|
|
147
|
+
: m.last_accessed ? new Date(m.last_accessed) : null;
|
|
148
|
+
return la && la < staleCutoff;
|
|
149
|
+
}).length;
|
|
150
|
+
const avgSalience = totalMemories > 0
|
|
151
|
+
? memories.reduce((s, m) => s + (m.salience ?? 0), 0) / totalMemories
|
|
152
|
+
: 0;
|
|
153
|
+
const fsrsCounts = { new: 0, learning: 0, review: 0, relearning: 0 };
|
|
154
|
+
for (const m of memories) {
|
|
155
|
+
const state = m.fsrs?.state;
|
|
156
|
+
if (state && state in fsrsCounts) {
|
|
157
|
+
fsrsCounts[state]++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// ── Observation stats ─────────────────────────────────────────────────────
|
|
161
|
+
const totalObs = allObs.length;
|
|
162
|
+
const unprocessedCount = unprocessedObs.length;
|
|
163
|
+
const obsWithPE = allObs.filter(o => o.prediction_error != null);
|
|
164
|
+
const avgPE = obsWithPE.length > 0
|
|
165
|
+
? obsWithPE.reduce((s, o) => s + (o.prediction_error ?? 0), 0) / obsWithPE.length
|
|
166
|
+
: 0;
|
|
167
|
+
// ── Prune candidates ──────────────────────────────────────────────────────
|
|
168
|
+
const nowMs = now.getTime();
|
|
169
|
+
const pruneCandidates = [];
|
|
170
|
+
for (const memory of memories) {
|
|
171
|
+
const candidate = scorePruneCandidate(memory, memoryIdsWithEdges, nowMs);
|
|
172
|
+
if (candidate)
|
|
173
|
+
pruneCandidates.push(candidate);
|
|
174
|
+
}
|
|
175
|
+
// Sort by score descending, then by name
|
|
176
|
+
pruneCandidates.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
|
|
177
|
+
// ── Prune action ──────────────────────────────────────────────────────────
|
|
178
|
+
let pruned = 0;
|
|
179
|
+
if (prune && pruneCandidates.length > 0) {
|
|
180
|
+
if (!json) {
|
|
181
|
+
console.error(`[fozikio health] Pruning ${pruneCandidates.length} candidates (soft-delete via faded=true)...`);
|
|
182
|
+
}
|
|
183
|
+
for (const candidate of pruneCandidates) {
|
|
184
|
+
await store.updateMemory(candidate.id, { faded: true });
|
|
185
|
+
pruned++;
|
|
186
|
+
}
|
|
187
|
+
if (!json) {
|
|
188
|
+
console.error(`[fozikio health] Pruned ${pruned} memories.`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// ── Build report ──────────────────────────────────────────────────────────
|
|
192
|
+
const report = {
|
|
193
|
+
generatedAt: now.toISOString(),
|
|
194
|
+
memory: {
|
|
195
|
+
total: totalMemories,
|
|
196
|
+
avgSalience,
|
|
197
|
+
lowSalienceCount,
|
|
198
|
+
staleCount,
|
|
199
|
+
fsrs: fsrsCounts,
|
|
200
|
+
},
|
|
201
|
+
observations: {
|
|
202
|
+
total: totalObs,
|
|
203
|
+
unprocessed: unprocessedCount,
|
|
204
|
+
avgPredictionError: avgPE,
|
|
205
|
+
},
|
|
206
|
+
pruneCandidates,
|
|
207
|
+
...(prune ? { pruned } : {}),
|
|
208
|
+
};
|
|
209
|
+
if (json) {
|
|
210
|
+
console.log(JSON.stringify(report, null, 2));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
// ── Formatted ASCII output ────────────────────────────────────────────────
|
|
214
|
+
const lines = [];
|
|
215
|
+
const dateStr = now.toISOString().slice(0, 10);
|
|
216
|
+
lines.push(top());
|
|
217
|
+
lines.push(header('CORTEX HEALTH REPORT'));
|
|
218
|
+
lines.push(header(dateStr));
|
|
219
|
+
// Memory Health
|
|
220
|
+
lines.push(divider());
|
|
221
|
+
lines.push(header('Memory Health'));
|
|
222
|
+
lines.push(divider());
|
|
223
|
+
lines.push(row('Total memories:', fmtCount(totalMemories)));
|
|
224
|
+
lines.push(row('Avg salience:', fmt(avgSalience, 3)));
|
|
225
|
+
lines.push(row(`Low salience (<${LOW_SALIENCE_THRESHOLD}):`, fmtCount(lowSalienceCount)));
|
|
226
|
+
lines.push(row(`Stale (>${STALE_DAYS}d no access):`, fmtCount(staleCount)));
|
|
227
|
+
lines.push(row('FSRS states:', ''));
|
|
228
|
+
lines.push(subrow('new:', `${fmtCount(fsrsCounts.new)} (${pct(fsrsCounts.new, totalMemories)})`));
|
|
229
|
+
lines.push(subrow('learning:', `${fmtCount(fsrsCounts.learning)} (${pct(fsrsCounts.learning, totalMemories)})`));
|
|
230
|
+
lines.push(subrow('review:', `${fmtCount(fsrsCounts.review)} (${pct(fsrsCounts.review, totalMemories)})`));
|
|
231
|
+
lines.push(subrow('relearning:', `${fmtCount(fsrsCounts.relearning)} (${pct(fsrsCounts.relearning, totalMemories)})`));
|
|
232
|
+
// Observation Stats
|
|
233
|
+
lines.push(divider());
|
|
234
|
+
lines.push(header('Observation Stats'));
|
|
235
|
+
lines.push(divider());
|
|
236
|
+
lines.push(row('Total observations:', fmtCount(totalObs)));
|
|
237
|
+
lines.push(row('Unprocessed:', fmtCount(unprocessedCount)));
|
|
238
|
+
lines.push(row('Avg prediction error:', fmt(avgPE, 3)));
|
|
239
|
+
// Prune Candidates
|
|
240
|
+
lines.push(divider());
|
|
241
|
+
const pruneHeaderSuffix = prune ? ` — ${pruned} pruned` : ' (dry run)';
|
|
242
|
+
lines.push(header(`Prune Candidates${pruneHeaderSuffix}`));
|
|
243
|
+
lines.push(divider());
|
|
244
|
+
lines.push(row('Criteria required:', `${PRUNE_CRITERIA_REQUIRED} of 5`));
|
|
245
|
+
lines.push(row('Candidates found:', fmtCount(pruneCandidates.length)));
|
|
246
|
+
if (!prune && pruneCandidates.length > 0) {
|
|
247
|
+
lines.push(row('', 'Run with --prune to soft-delete'));
|
|
248
|
+
}
|
|
249
|
+
if (pruneCandidates.length > 0) {
|
|
250
|
+
lines.push(divider());
|
|
251
|
+
lines.push(header('Top Prune Candidates'));
|
|
252
|
+
lines.push(divider());
|
|
253
|
+
const shown = pruneCandidates.slice(0, 10);
|
|
254
|
+
for (const c of shown) {
|
|
255
|
+
const scoreLabel = `[${c.score}/5]`;
|
|
256
|
+
const nameDisplay = c.name.length > 32 ? c.name.slice(0, 32) + '...' : c.name.padEnd(35);
|
|
257
|
+
lines.push(row(`${scoreLabel} ${nameDisplay}`, ''));
|
|
258
|
+
for (const reason of c.reasons) {
|
|
259
|
+
lines.push(subrow('- ' + reason, ''));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (pruneCandidates.length > 10) {
|
|
263
|
+
lines.push(row('', `… and ${pruneCandidates.length - 10} more`));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
lines.push(bottom());
|
|
267
|
+
console.log('');
|
|
268
|
+
for (const line of lines) {
|
|
269
|
+
console.log(line);
|
|
270
|
+
}
|
|
271
|
+
console.log('');
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=health-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-cmd.js","sourceRoot":"","sources":["../../src/bin/health-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH,KAAK,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC1C,KAAK,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC/D,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAiEhE;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH,KAAK,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC1C,KAAK,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC/D,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAiEhE;AAmaD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAkJ5C"}
|