crbro-memory 1.16.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -30
- package/dist/engine/brain.js +1 -1
- package/dist/engine/brain.js.map +1 -1
- package/dist/engine/cortex.d.ts +189 -1
- package/dist/engine/cortex.d.ts.map +1 -1
- package/dist/engine/cortex.js +639 -17
- package/dist/engine/cortex.js.map +1 -1
- package/dist/engine/hippocampus.d.ts +27 -1
- package/dist/engine/hippocampus.d.ts.map +1 -1
- package/dist/engine/hippocampus.js +51 -2
- package/dist/engine/hippocampus.js.map +1 -1
- package/dist/engine/maintenance.d.ts +49 -2
- package/dist/engine/maintenance.d.ts.map +1 -1
- package/dist/engine/maintenance.js +301 -28
- package/dist/engine/maintenance.js.map +1 -1
- package/dist/engine/prefrontal.d.ts +25 -7
- package/dist/engine/prefrontal.d.ts.map +1 -1
- package/dist/engine/prefrontal.js +55 -27
- package/dist/engine/prefrontal.js.map +1 -1
- package/dist/engine/synapses.d.ts +38 -0
- package/dist/engine/synapses.d.ts.map +1 -1
- package/dist/engine/synapses.js +116 -11
- package/dist/engine/synapses.js.map +1 -1
- package/dist/search/index.d.ts +14 -2
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +40 -6
- package/dist/search/index.js.map +1 -1
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +755 -829
- package/dist/server.js.map +1 -1
- package/dist/sync/materialize.d.ts +1 -1
- package/dist/sync/materialize.d.ts.map +1 -1
- package/dist/sync/materialize.js +40 -3
- package/dist/sync/materialize.js.map +1 -1
- package/dist/sync/ops.d.ts +9 -4
- package/dist/sync/ops.d.ts.map +1 -1
- package/dist/sync/ops.js.map +1 -1
- package/dist/sync/space.d.ts +27 -0
- package/dist/sync/space.d.ts.map +1 -1
- package/dist/sync/space.js +113 -1
- package/dist/sync/space.js.map +1 -1
- package/dist/types/index.d.ts +29 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ─── CRBRO Maintenance Engine ────────────────────────────────────
|
|
3
|
-
// Pruning, archiving, integrity checks, and consolidation
|
|
3
|
+
// Pruning, archiving, integrity checks, repair, and consolidation
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.Maintenance = void 0;
|
|
6
6
|
const fs_js_1 = require("../utils/fs.js");
|
|
7
7
|
const lock_js_1 = require("../utils/lock.js");
|
|
8
|
+
const ops_js_1 = require("../sync/ops.js");
|
|
9
|
+
/** Every text an entry_dates / entry_status key may legitimately point at. */
|
|
10
|
+
function liveEntryKeys(n) {
|
|
11
|
+
return new Set([
|
|
12
|
+
...(n.decisions || []).map(d => d.text),
|
|
13
|
+
...(n.patterns || []), ...(n.preferences || []),
|
|
14
|
+
...(n.errors || []), ...(n.debts || []),
|
|
15
|
+
].map(ops_js_1.entryId));
|
|
16
|
+
}
|
|
8
17
|
class Maintenance {
|
|
9
18
|
brain;
|
|
10
19
|
cortex;
|
|
@@ -39,8 +48,34 @@ class Maintenance {
|
|
|
39
48
|
clusters_detected: 0,
|
|
40
49
|
index_rebuilt: false,
|
|
41
50
|
heat_recalculated: false,
|
|
51
|
+
archives_count: 0,
|
|
52
|
+
unarchived_neurons: 0,
|
|
53
|
+
repairable: 0,
|
|
54
|
+
repaired: 0,
|
|
55
|
+
repairs: [],
|
|
42
56
|
notes: [],
|
|
43
57
|
};
|
|
58
|
+
// 0. Bring neurons back from the archive, before anything else could
|
|
59
|
+
// archive them again in the same pass.
|
|
60
|
+
const recuperados = new Set();
|
|
61
|
+
if (options?.unarchive && !dryRun) {
|
|
62
|
+
const r = await this.unarchive(options.unarchive);
|
|
63
|
+
report.unarchived_neurons = r.restored.length;
|
|
64
|
+
for (const id of r.restored)
|
|
65
|
+
recuperados.add(id);
|
|
66
|
+
if (r.restored.length > 0) {
|
|
67
|
+
report.notes.push(`Unarchived ${r.restored.length} neuron(s) back into cortex/ and reindexed them: ${r.restored.join(', ')}.`);
|
|
68
|
+
}
|
|
69
|
+
if (r.unknown.length > 0) {
|
|
70
|
+
report.notes.push(`Not in archives/, nothing to unarchive: ${r.unknown.join(', ')}.`);
|
|
71
|
+
}
|
|
72
|
+
if (r.already.length > 0) {
|
|
73
|
+
report.notes.push(`Already present in cortex/, archive copy left in place: ${r.already.join(', ')}.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (options?.unarchive && dryRun) {
|
|
77
|
+
report.notes.push('Dry run: nothing was unarchived.');
|
|
78
|
+
}
|
|
44
79
|
// 1. Recalculate heat scores.
|
|
45
80
|
// Not in a dry run: recalculate() writes to disk, so running it here was
|
|
46
81
|
// rewriting every neuron in what the caller was told was a simulation.
|
|
@@ -60,16 +95,17 @@ class Maintenance {
|
|
|
60
95
|
// searchable and has no restore path. One routine call would have swallowed
|
|
61
96
|
// 87% of the memory. Heat decays with time, so a brain that is merely old
|
|
62
97
|
// looks identical to a brain that is worthless.
|
|
63
|
-
report.archivable_neurons = await this.countColdNeurons();
|
|
98
|
+
report.archivable_neurons = await this.countColdNeurons(recuperados);
|
|
64
99
|
if (options?.archive && !dryRun) {
|
|
65
|
-
report.archived_neurons = await this.archiveColdNeurons();
|
|
100
|
+
report.archived_neurons = await this.archiveColdNeurons(recuperados);
|
|
66
101
|
report.notes.push(`Archived ${report.archived_neurons} cold neurons to ${this.brain.paths.archives}. ` +
|
|
67
|
-
'They are no longer searchable;
|
|
102
|
+
'They are no longer searchable; pass unarchive:[ids] (or "all") to bring them back.');
|
|
68
103
|
}
|
|
69
104
|
else if (report.archivable_neurons > 0) {
|
|
70
105
|
report.notes.push(`${report.archivable_neurons} neurons are cold enough to archive. Nothing was archived: ` +
|
|
71
106
|
'pass archive:true if you have reviewed the list and really want them out of the way.');
|
|
72
107
|
}
|
|
108
|
+
report.archives_count = (await (0, fs_js_1.listJSONFiles)(this.brain.paths.archives)).length;
|
|
73
109
|
// 2b. Miner leftovers.
|
|
74
110
|
//
|
|
75
111
|
// Early versions of the miner recorded "Referenced in: <file>" for every
|
|
@@ -80,7 +116,7 @@ class Maintenance {
|
|
|
80
116
|
if (options?.purgeBoilerplate && !dryRun) {
|
|
81
117
|
report.boilerplate_removed = await this.purgeBoilerplate();
|
|
82
118
|
report.notes.push(`Removed ${report.boilerplate_removed} contentless miner fact(s). ` +
|
|
83
|
-
'Neurons left with nothing in them were not deleted; review them with
|
|
119
|
+
'Neurons left with nothing in them were not deleted; review them with crbro_inspect view=neurons.');
|
|
84
120
|
}
|
|
85
121
|
else if (report.boilerplate_facts > 0) {
|
|
86
122
|
report.notes.push(`${report.boilerplate_facts} contentless miner fact(s) ("Referenced in: ...") are taking up ` +
|
|
@@ -96,16 +132,35 @@ class Maintenance {
|
|
|
96
132
|
}
|
|
97
133
|
// 4. Integrity check
|
|
98
134
|
report.integrity_issues = await this.checkIntegrity();
|
|
135
|
+
report.repairable = report.integrity_issues.length;
|
|
136
|
+
// 4b. Repair what the check found. Opt-in and never in a dry run.
|
|
137
|
+
if (options?.repair && !dryRun) {
|
|
138
|
+
report.repairs = await this.repair();
|
|
139
|
+
report.repaired = report.repairs.length;
|
|
140
|
+
if (report.repaired > 0) {
|
|
141
|
+
report.notes.push(`Repaired ${report.repaired} integrity issue(s); see repairs[].`);
|
|
142
|
+
// What is left after the fixes, so the report does not list issues that are gone.
|
|
143
|
+
report.integrity_issues = await this.checkIntegrity();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else if (report.repairable > 0) {
|
|
147
|
+
report.notes.push(`${report.repairable} integrity issue(s) found. Pass repair:true to fix dangling connections, ` +
|
|
148
|
+
'orphan synapses, stale sidecar keys and manifest counters.');
|
|
149
|
+
}
|
|
99
150
|
// The debt ledger: a deferral that never named its revisit condition is
|
|
100
151
|
// on its way to becoming permanent by accident. Count them and say so —
|
|
101
|
-
// "later" without a trigger means "never".
|
|
152
|
+
// "later" without a trigger means "never". Retired debts (entry_status)
|
|
153
|
+
// are settled and do not count.
|
|
102
154
|
const sinDisparador = [];
|
|
103
155
|
for (const id of await (0, fs_js_1.listJSONFiles)(this.brain.paths.cortex)) {
|
|
104
156
|
const n = await (0, fs_js_1.readJSON)(this.brain.paths.neuron(id));
|
|
105
157
|
if (!n || !n.debts || n.debts.length === 0)
|
|
106
158
|
continue;
|
|
107
|
-
|
|
108
|
-
|
|
159
|
+
const vivas = n.debts.filter(d => !n.entry_status?.[(0, ops_js_1.entryId)(d)]);
|
|
160
|
+
if (vivas.length === 0)
|
|
161
|
+
continue;
|
|
162
|
+
report.debts_total += vivas.length;
|
|
163
|
+
const sin = vivas.filter(d => !/REVISAR CUANDO|REVISIT WHEN|TRIGGER:|DISPARADOR/i.test(d));
|
|
109
164
|
if (sin.length > 0)
|
|
110
165
|
sinDisparador.push(`${n.name || id} (${sin.length})`);
|
|
111
166
|
report.debts_without_trigger += sin.length;
|
|
@@ -115,9 +170,14 @@ class Maintenance {
|
|
|
115
170
|
`without a trigger quietly becomes permanent. Neurons: ${sinDisparador.join(', ')}. ` +
|
|
116
171
|
`Rewrite them with a "REVISAR CUANDO:" clause.`);
|
|
117
172
|
}
|
|
118
|
-
// 5.
|
|
119
|
-
|
|
173
|
+
// 5. Global map — computed live, never written. In both modes: this is
|
|
174
|
+
// what lets a dry run promise that it touches nothing on disk.
|
|
175
|
+
const globalMap = await this.prefrontal.getGlobalMap();
|
|
120
176
|
report.clusters_detected = globalMap.clusters.length;
|
|
177
|
+
if (!dryRun && await (0, fs_js_1.fileExists)(this.brain.paths.globalMap())) {
|
|
178
|
+
await (0, fs_js_1.deleteJSON)(this.brain.paths.globalMap());
|
|
179
|
+
report.notes.push('Removed the obsolete global_map.json cache; the map is computed live.');
|
|
180
|
+
}
|
|
121
181
|
// 6. Rebuild search index
|
|
122
182
|
if (!dryRun) {
|
|
123
183
|
await this.searchEngine.rebuild();
|
|
@@ -138,7 +198,7 @@ class Maintenance {
|
|
|
138
198
|
/**
|
|
139
199
|
* Consolidate session — called at end of session.
|
|
140
200
|
*/
|
|
141
|
-
async consolidate(summary) {
|
|
201
|
+
async consolidate(summary, options) {
|
|
142
202
|
// Persist search index
|
|
143
203
|
await this.searchEngine.persist();
|
|
144
204
|
// Log session
|
|
@@ -170,14 +230,34 @@ class Maintenance {
|
|
|
170
230
|
}
|
|
171
231
|
}
|
|
172
232
|
const synapseCount = await this.synapses.count();
|
|
173
|
-
|
|
233
|
+
// Topics the session touched without writing: only ids that exist, each
|
|
234
|
+
// once, and not already counted by the tally. They join the log, not the
|
|
235
|
+
// implicit-synapse pass above (reading two neurons is no evidence they
|
|
236
|
+
// are related) and not the write counters.
|
|
237
|
+
const leidos = [];
|
|
238
|
+
const desconocidos = [];
|
|
239
|
+
const yaVistos = new Set(escrito.topics);
|
|
240
|
+
for (const raw of options?.topicsTouched ?? []) {
|
|
241
|
+
const id = String(raw ?? '').trim();
|
|
242
|
+
if (!id || yaVistos.has(id))
|
|
243
|
+
continue;
|
|
244
|
+
yaVistos.add(id);
|
|
245
|
+
if (await this.cortex.peek(id))
|
|
246
|
+
leidos.push(id);
|
|
247
|
+
else
|
|
248
|
+
desconocidos.push(id);
|
|
249
|
+
}
|
|
250
|
+
const topicosLog = [...escrito.topics, ...leidos];
|
|
251
|
+
const log = await this.hippocampus.logSession({
|
|
174
252
|
summary,
|
|
175
|
-
topics_touched:
|
|
253
|
+
topics_touched: topicosLog,
|
|
176
254
|
key_facts_added: escrito.facts,
|
|
177
255
|
decisions_made: escrito.decisions,
|
|
178
256
|
});
|
|
179
|
-
//
|
|
180
|
-
|
|
257
|
+
// Point the active context at the session just logged. This used to be
|
|
258
|
+
// updateContext({}), which rewrote the file and set nothing, so boot
|
|
259
|
+
// reported last_session: null forever.
|
|
260
|
+
await this.prefrontal.setLastSession(log.session_id);
|
|
181
261
|
// Recalculate heat
|
|
182
262
|
await this.heatEngine.recalculate();
|
|
183
263
|
// Update manifest
|
|
@@ -195,6 +275,10 @@ class Maintenance {
|
|
|
195
275
|
synapses_updated: synapsesTouched,
|
|
196
276
|
total_synapses: synapseCount,
|
|
197
277
|
session_logged: true,
|
|
278
|
+
session_id: log.session_id,
|
|
279
|
+
redacted: log.redacted,
|
|
280
|
+
topics_logged: topicosLog,
|
|
281
|
+
topics_unknown: desconocidos,
|
|
198
282
|
};
|
|
199
283
|
}
|
|
200
284
|
// ─── Private Helpers ──────────────────────────────────────────
|
|
@@ -231,56 +315,245 @@ class Maintenance {
|
|
|
231
315
|
await this.searchEngine.rebuild();
|
|
232
316
|
return removed;
|
|
233
317
|
}
|
|
234
|
-
|
|
318
|
+
/** Cold: heat below 0.05 and untouched for more than 90 days. */
|
|
319
|
+
isCold(neuron) {
|
|
320
|
+
const lastAccess = new Date(neuron.last_accessed).getTime();
|
|
321
|
+
const diffDays = (Date.now() - lastAccess) / (1000 * 60 * 60 * 24);
|
|
322
|
+
return neuron.heat < 0.05 && diffDays > 90;
|
|
323
|
+
}
|
|
324
|
+
async archiveColdNeurons(skip = new Set()) {
|
|
235
325
|
const ids = await this.cortex.allIds();
|
|
236
326
|
let archived = 0;
|
|
237
327
|
for (const id of ids) {
|
|
328
|
+
if (skip.has(id))
|
|
329
|
+
continue;
|
|
238
330
|
const neuron = await (0, fs_js_1.readJSON)(this.brain.paths.neuron(id));
|
|
239
331
|
if (!neuron)
|
|
240
332
|
continue;
|
|
241
|
-
|
|
242
|
-
const lastAccess = new Date(neuron.last_accessed).getTime();
|
|
243
|
-
const diffDays = (Date.now() - lastAccess) / (1000 * 60 * 60 * 24);
|
|
244
|
-
if (neuron.heat < 0.05 && diffDays > 90) {
|
|
333
|
+
if (this.isCold(neuron)) {
|
|
245
334
|
await (0, fs_js_1.moveFile)(this.brain.paths.neuron(id), `${this.brain.paths.archives}/${id}.json`);
|
|
246
335
|
archived++;
|
|
247
336
|
}
|
|
248
337
|
}
|
|
249
338
|
return archived;
|
|
250
339
|
}
|
|
251
|
-
async countColdNeurons() {
|
|
340
|
+
async countColdNeurons(skip = new Set()) {
|
|
252
341
|
const ids = await this.cortex.allIds();
|
|
253
342
|
let count = 0;
|
|
254
343
|
for (const id of ids) {
|
|
344
|
+
if (skip.has(id))
|
|
345
|
+
continue;
|
|
255
346
|
const neuron = await (0, fs_js_1.readJSON)(this.brain.paths.neuron(id));
|
|
256
347
|
if (!neuron)
|
|
257
348
|
continue;
|
|
258
|
-
|
|
259
|
-
const diffDays = (Date.now() - lastAccess) / (1000 * 60 * 60 * 24);
|
|
260
|
-
if (neuron.heat < 0.05 && diffDays > 90)
|
|
349
|
+
if (this.isCold(neuron))
|
|
261
350
|
count++;
|
|
262
351
|
}
|
|
263
352
|
return count;
|
|
264
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Move neurons from archives/ back into cortex/ and index them. A neuron
|
|
356
|
+
* that exists in cortex/ again is not overwritten: the archive copy stays
|
|
357
|
+
* and the id is reported in `already`.
|
|
358
|
+
*/
|
|
359
|
+
async unarchive(which) {
|
|
360
|
+
const out = { restored: [], unknown: [], already: [] };
|
|
361
|
+
const enArchivo = await (0, fs_js_1.listJSONFiles)(this.brain.paths.archives);
|
|
362
|
+
const pedidos = which === 'all'
|
|
363
|
+
? enArchivo
|
|
364
|
+
: [...new Set(which.map(s => String(s || '').trim()).filter(Boolean))];
|
|
365
|
+
for (const id of pedidos) {
|
|
366
|
+
const origen = `${this.brain.paths.archives}/${id}.json`;
|
|
367
|
+
if (!enArchivo.includes(id) || !(await (0, fs_js_1.fileExists)(origen))) {
|
|
368
|
+
out.unknown.push(id);
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
const destino = this.brain.paths.neuron(id);
|
|
372
|
+
if (await (0, fs_js_1.fileExists)(destino)) {
|
|
373
|
+
out.already.push(id);
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
await (0, fs_js_1.moveFile)(origen, destino);
|
|
377
|
+
out.restored.push(id);
|
|
378
|
+
try {
|
|
379
|
+
const neuron = await (0, fs_js_1.readJSON)(destino);
|
|
380
|
+
if (neuron)
|
|
381
|
+
await this.searchEngine.indexNeuron(neuron);
|
|
382
|
+
}
|
|
383
|
+
catch {
|
|
384
|
+
// The index is derived data; the file is back either way.
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return out;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* What is inconsistent on disk. Every line here names something repair()
|
|
391
|
+
* knows how to fix, except a corrupted neuron file, which nobody should
|
|
392
|
+
* fix blindly.
|
|
393
|
+
*/
|
|
265
394
|
async checkIntegrity() {
|
|
266
395
|
const issues = [];
|
|
267
396
|
const ids = await this.cortex.allIds();
|
|
397
|
+
const existe = new Set(ids);
|
|
268
398
|
for (const id of ids) {
|
|
269
|
-
|
|
399
|
+
let neuron;
|
|
400
|
+
try {
|
|
401
|
+
neuron = await (0, fs_js_1.readJSON)(this.brain.paths.neuron(id));
|
|
402
|
+
}
|
|
403
|
+
catch {
|
|
404
|
+
neuron = null;
|
|
405
|
+
}
|
|
270
406
|
if (!neuron) {
|
|
271
407
|
issues.push(`Corrupted neuron file: ${id}`);
|
|
272
408
|
continue;
|
|
273
409
|
}
|
|
274
410
|
// Check for broken connections
|
|
275
|
-
for (const connId of neuron.connections) {
|
|
276
|
-
|
|
277
|
-
if (!connected) {
|
|
411
|
+
for (const connId of neuron.connections || []) {
|
|
412
|
+
if (!existe.has(connId)) {
|
|
278
413
|
issues.push(`Broken connection: ${id} → ${connId} (target missing)`);
|
|
279
414
|
}
|
|
280
415
|
}
|
|
416
|
+
// Sidecar keys pointing at entries that no longer exist.
|
|
417
|
+
const vivos = liveEntryKeys(neuron);
|
|
418
|
+
for (const k of Object.keys(neuron.entry_dates || {})) {
|
|
419
|
+
if (!vivos.has(k))
|
|
420
|
+
issues.push(`Stale entry_dates key in ${id}: ${k}`);
|
|
421
|
+
}
|
|
422
|
+
for (const k of Object.keys(neuron.entry_status || {})) {
|
|
423
|
+
if (!vivos.has(k))
|
|
424
|
+
issues.push(`Stale entry_status key in ${id}: ${k}`);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
// Synapse files whose ends no longer both exist.
|
|
428
|
+
const synIds = await (0, fs_js_1.listJSONFiles)(this.brain.paths.synapses);
|
|
429
|
+
for (const sid of synIds) {
|
|
430
|
+
let synapse;
|
|
431
|
+
try {
|
|
432
|
+
synapse = await (0, fs_js_1.readJSON)(this.brain.paths.synapse(sid));
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
synapse = null;
|
|
436
|
+
}
|
|
437
|
+
if (!synapse || !Array.isArray(synapse.nodes) || synapse.nodes.length !== 2) {
|
|
438
|
+
issues.push(`Corrupted synapse file: ${sid}`);
|
|
439
|
+
continue;
|
|
440
|
+
}
|
|
441
|
+
for (const node of synapse.nodes) {
|
|
442
|
+
if (!existe.has(node))
|
|
443
|
+
issues.push(`Orphan synapse: ${sid} (neuron ${node} missing)`);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
// Manifest counters that disagree with the disk.
|
|
447
|
+
const manifest = await this.brain.getManifest();
|
|
448
|
+
const sesiones = (await (0, fs_js_1.listJSONFiles)(this.brain.paths.hippocampus)).length;
|
|
449
|
+
if (manifest.total_neurons !== ids.length) {
|
|
450
|
+
issues.push(`Manifest says ${manifest.total_neurons} neurons, disk has ${ids.length}`);
|
|
451
|
+
}
|
|
452
|
+
if (manifest.total_synapses !== synIds.length) {
|
|
453
|
+
issues.push(`Manifest says ${manifest.total_synapses} synapses, disk has ${synIds.length}`);
|
|
454
|
+
}
|
|
455
|
+
if (manifest.total_sessions !== sesiones) {
|
|
456
|
+
issues.push(`Manifest says ${manifest.total_sessions} sessions, disk has ${sesiones}`);
|
|
281
457
|
}
|
|
282
458
|
return issues;
|
|
283
459
|
}
|
|
460
|
+
/**
|
|
461
|
+
* Fix what checkIntegrity() reports: dangling connection ids, synapse files
|
|
462
|
+
* with a missing end, stale entry_dates / entry_status keys, manifest
|
|
463
|
+
* counters. One line per fix. Corrupted files are left for a human.
|
|
464
|
+
*/
|
|
465
|
+
async repair() {
|
|
466
|
+
const done = [];
|
|
467
|
+
const ids = await this.cortex.allIds();
|
|
468
|
+
const existe = new Set(ids);
|
|
469
|
+
// Synapses first: an orphan synapse also shows up as a dangling
|
|
470
|
+
// connection on its surviving end, and disconnect() cleans both.
|
|
471
|
+
for (const sid of await (0, fs_js_1.listJSONFiles)(this.brain.paths.synapses)) {
|
|
472
|
+
let synapse;
|
|
473
|
+
try {
|
|
474
|
+
synapse = await (0, fs_js_1.readJSON)(this.brain.paths.synapse(sid));
|
|
475
|
+
}
|
|
476
|
+
catch {
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
if (!synapse || !Array.isArray(synapse.nodes) || synapse.nodes.length !== 2)
|
|
480
|
+
continue;
|
|
481
|
+
const faltan = synapse.nodes.filter(n => !existe.has(n));
|
|
482
|
+
if (faltan.length === 0)
|
|
483
|
+
continue;
|
|
484
|
+
await (0, fs_js_1.deleteJSON)(this.brain.paths.synapse(sid));
|
|
485
|
+
for (const node of synapse.nodes) {
|
|
486
|
+
if (!existe.has(node))
|
|
487
|
+
continue;
|
|
488
|
+
await (0, fs_js_1.updateJSON)(this.brain.paths.neuron(node), current => {
|
|
489
|
+
if (!current)
|
|
490
|
+
return null;
|
|
491
|
+
const otro = synapse.nodes[0] === node ? synapse.nodes[1] : synapse.nodes[0];
|
|
492
|
+
if (!(current.connections || []).includes(otro))
|
|
493
|
+
return null;
|
|
494
|
+
current.connections = current.connections.filter(c => c !== otro);
|
|
495
|
+
return current;
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
done.push(`Deleted orphan synapse ${sid} (missing: ${faltan.join(', ')})`);
|
|
499
|
+
}
|
|
500
|
+
for (const id of ids) {
|
|
501
|
+
let neuron;
|
|
502
|
+
try {
|
|
503
|
+
neuron = await (0, fs_js_1.readJSON)(this.brain.paths.neuron(id));
|
|
504
|
+
}
|
|
505
|
+
catch {
|
|
506
|
+
continue; // corrupted: not ours to guess at
|
|
507
|
+
}
|
|
508
|
+
if (!neuron)
|
|
509
|
+
continue;
|
|
510
|
+
const rotas = (neuron.connections || []).filter(c => !existe.has(c));
|
|
511
|
+
const vivos = liveEntryKeys(neuron);
|
|
512
|
+
const fechasRancias = Object.keys(neuron.entry_dates || {}).filter(k => !vivos.has(k));
|
|
513
|
+
const estadosRancios = Object.keys(neuron.entry_status || {}).filter(k => !vivos.has(k));
|
|
514
|
+
if (rotas.length === 0 && fechasRancias.length === 0 && estadosRancios.length === 0)
|
|
515
|
+
continue;
|
|
516
|
+
await (0, fs_js_1.updateJSON)(this.brain.paths.neuron(id), current => {
|
|
517
|
+
if (!current)
|
|
518
|
+
return null;
|
|
519
|
+
if (rotas.length > 0) {
|
|
520
|
+
current.connections = (current.connections || []).filter(c => existe.has(c));
|
|
521
|
+
}
|
|
522
|
+
if (fechasRancias.length > 0 && current.entry_dates) {
|
|
523
|
+
for (const k of fechasRancias)
|
|
524
|
+
delete current.entry_dates[k];
|
|
525
|
+
}
|
|
526
|
+
if (estadosRancios.length > 0 && current.entry_status) {
|
|
527
|
+
for (const k of estadosRancios)
|
|
528
|
+
delete current.entry_status[k];
|
|
529
|
+
}
|
|
530
|
+
return current;
|
|
531
|
+
});
|
|
532
|
+
for (const c of rotas)
|
|
533
|
+
done.push(`Removed dangling connection ${id} → ${c}`);
|
|
534
|
+
for (const k of fechasRancias)
|
|
535
|
+
done.push(`Dropped stale entry_dates key ${k} from ${id}`);
|
|
536
|
+
for (const k of estadosRancios)
|
|
537
|
+
done.push(`Dropped stale entry_status key ${k} from ${id}`);
|
|
538
|
+
}
|
|
539
|
+
// Counters: the disk is the truth.
|
|
540
|
+
const manifest = await this.brain.getManifest();
|
|
541
|
+
const enDisco = {
|
|
542
|
+
total_neurons: ids.length,
|
|
543
|
+
total_synapses: (await (0, fs_js_1.listJSONFiles)(this.brain.paths.synapses)).length,
|
|
544
|
+
total_sessions: (await (0, fs_js_1.listJSONFiles)(this.brain.paths.hippocampus)).length,
|
|
545
|
+
};
|
|
546
|
+
const cambios = {};
|
|
547
|
+
for (const k of Object.keys(enDisco)) {
|
|
548
|
+
if (manifest[k] !== enDisco[k]) {
|
|
549
|
+
cambios[k] = enDisco[k];
|
|
550
|
+
done.push(`Manifest ${k}: ${manifest[k]} → ${enDisco[k]}`);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
if (Object.keys(cambios).length > 0)
|
|
554
|
+
await this.brain.updateManifest(cambios);
|
|
555
|
+
return done;
|
|
556
|
+
}
|
|
284
557
|
}
|
|
285
558
|
exports.Maintenance = Maintenance;
|
|
286
559
|
//# sourceMappingURL=maintenance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/engine/maintenance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/engine/maintenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ export declare class Prefrontal {
|
|
|
9
9
|
getContext(): Promise<ActiveContext>;
|
|
10
10
|
/**
|
|
11
11
|
* Update the active context.
|
|
12
|
+
*
|
|
13
|
+
* A call with nothing to change is a read: it returns the context and does
|
|
14
|
+
* NOT touch the file. It used to rewrite last_updated on every read, so the
|
|
15
|
+
* timestamp said "changed just now" about a context nobody had changed.
|
|
12
16
|
*/
|
|
13
17
|
updateContext(updates: {
|
|
14
18
|
set_topics?: string[];
|
|
@@ -23,20 +27,34 @@ export declare class Prefrontal {
|
|
|
23
27
|
* they were done.
|
|
24
28
|
*/
|
|
25
29
|
resolve_pending?: string;
|
|
30
|
+
/** Drop one open item WITHOUT moving it to recently_closed. Same matcher as resolve_pending. */
|
|
31
|
+
discard_pending?: string;
|
|
32
|
+
/** Empty active_topics, pending_tasks and recently_closed. Runs before the other updates. */
|
|
33
|
+
clear?: boolean;
|
|
26
34
|
}): Promise<ActiveContext & {
|
|
27
|
-
resolved
|
|
35
|
+
resolved: PendingTask[];
|
|
36
|
+
discarded: PendingTask[];
|
|
37
|
+
written: boolean;
|
|
28
38
|
}>;
|
|
29
39
|
/**
|
|
30
|
-
*
|
|
40
|
+
* Record which session was logged last. Nothing else in the context moves.
|
|
41
|
+
* Before this, nothing ever wrote last_session, so boot reported null forever.
|
|
31
42
|
*/
|
|
32
|
-
|
|
43
|
+
setLastSession(sessionId: string): Promise<void>;
|
|
33
44
|
/**
|
|
34
|
-
*
|
|
45
|
+
* Get current hot topics.
|
|
35
46
|
*/
|
|
36
|
-
|
|
47
|
+
getHotTopics(limit?: number): Promise<HotTopics>;
|
|
37
48
|
/**
|
|
38
|
-
*
|
|
49
|
+
* The global map — clusters of related neurons and bridges between domains.
|
|
50
|
+
*
|
|
51
|
+
* Computed live from the cortex and the connections on every call, and
|
|
52
|
+
* never written to disk. The cached global_map.json it replaces was the one
|
|
53
|
+
* file a maintenance dry run still rewrote, and it went stale between
|
|
54
|
+
* rebuilds; a map that is always current costs one pass over the neurons.
|
|
55
|
+
* `last_rebuilt` keeps its name so the GlobalMap shape does not change: it
|
|
56
|
+
* is the moment this map was computed.
|
|
39
57
|
*/
|
|
40
|
-
getGlobalMap(
|
|
58
|
+
getGlobalMap(): Promise<GlobalMap>;
|
|
41
59
|
}
|
|
42
60
|
//# sourceMappingURL=prefrontal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefrontal.d.ts","sourceRoot":"","sources":["../../src/engine/prefrontal.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAA2B,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAanH,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAIhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAiB1C
|
|
1
|
+
{"version":3,"file":"prefrontal.d.ts","sourceRoot":"","sources":["../../src/engine/prefrontal.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAA2B,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAanH,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAIhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAiB1C;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE;QAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;;;;;WAQG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gGAAgG;QAChG,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,6FAA6F;QAC7F,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,aAAa,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAuEpG;;;OAGG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStD;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAa1D;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;CA8EzC"}
|