@monoes/memory 1.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 +902 -0
- package/dist/agent-memory-scope.d.ts +131 -0
- package/dist/agent-memory-scope.d.ts.map +1 -0
- package/dist/agent-memory-scope.js +230 -0
- package/dist/agent-memory-scope.js.map +1 -0
- package/dist/agentdb-adapter.d.ts +165 -0
- package/dist/agentdb-adapter.d.ts.map +1 -0
- package/dist/agentdb-adapter.js +836 -0
- package/dist/agentdb-adapter.js.map +1 -0
- package/dist/agentdb-backend.d.ts +218 -0
- package/dist/agentdb-backend.d.ts.map +1 -0
- package/dist/agentdb-backend.js +879 -0
- package/dist/agentdb-backend.js.map +1 -0
- package/dist/auto-memory-bridge.d.ts +230 -0
- package/dist/auto-memory-bridge.d.ts.map +1 -0
- package/dist/auto-memory-bridge.js +730 -0
- package/dist/auto-memory-bridge.js.map +1 -0
- package/dist/cache-manager.d.ts +134 -0
- package/dist/cache-manager.d.ts.map +1 -0
- package/dist/cache-manager.js +410 -0
- package/dist/cache-manager.js.map +1 -0
- package/dist/checkpointer.d.ts +78 -0
- package/dist/checkpointer.d.ts.map +1 -0
- package/dist/checkpointer.js +174 -0
- package/dist/checkpointer.js.map +1 -0
- package/dist/controller-registry.d.ts +216 -0
- package/dist/controller-registry.d.ts.map +1 -0
- package/dist/controller-registry.js +897 -0
- package/dist/controller-registry.js.map +1 -0
- package/dist/database-provider.d.ts +87 -0
- package/dist/database-provider.d.ts.map +1 -0
- package/dist/database-provider.js +434 -0
- package/dist/database-provider.js.map +1 -0
- package/dist/diskann-backend.d.ts +126 -0
- package/dist/diskann-backend.d.ts.map +1 -0
- package/dist/diskann-backend.js +324 -0
- package/dist/diskann-backend.js.map +1 -0
- package/dist/episodic-store.d.ts +58 -0
- package/dist/episodic-store.d.ts.map +1 -0
- package/dist/episodic-store.js +160 -0
- package/dist/episodic-store.js.map +1 -0
- package/dist/hnsw-index.d.ts +111 -0
- package/dist/hnsw-index.d.ts.map +1 -0
- package/dist/hnsw-index.js +778 -0
- package/dist/hnsw-index.js.map +1 -0
- package/dist/hnsw-lite.d.ts +29 -0
- package/dist/hnsw-lite.d.ts.map +1 -0
- package/dist/hnsw-lite.js +236 -0
- package/dist/hnsw-lite.js.map +1 -0
- package/dist/hybrid-backend.d.ts +299 -0
- package/dist/hybrid-backend.d.ts.map +1 -0
- package/dist/hybrid-backend.js +804 -0
- package/dist/hybrid-backend.js.map +1 -0
- package/dist/index.d.ts +228 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +379 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/document-chunker.d.ts +22 -0
- package/dist/knowledge/document-chunker.d.ts.map +1 -0
- package/dist/knowledge/document-chunker.js +52 -0
- package/dist/knowledge/document-chunker.js.map +1 -0
- package/dist/knowledge/index.d.ts +12 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +9 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/knowledge-retriever.d.ts +48 -0
- package/dist/knowledge/knowledge-retriever.d.ts.map +1 -0
- package/dist/knowledge/knowledge-retriever.js +80 -0
- package/dist/knowledge/knowledge-retriever.js.map +1 -0
- package/dist/knowledge/knowledge-store.d.ts +58 -0
- package/dist/knowledge/knowledge-store.d.ts.map +1 -0
- package/dist/knowledge/knowledge-store.js +121 -0
- package/dist/knowledge/knowledge-store.js.map +1 -0
- package/dist/learning-bridge.d.ts +162 -0
- package/dist/learning-bridge.d.ts.map +1 -0
- package/dist/learning-bridge.js +522 -0
- package/dist/learning-bridge.js.map +1 -0
- package/dist/memory-graph.d.ts +123 -0
- package/dist/memory-graph.d.ts.map +1 -0
- package/dist/memory-graph.js +412 -0
- package/dist/memory-graph.js.map +1 -0
- package/dist/migration.d.ts +68 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +513 -0
- package/dist/migration.js.map +1 -0
- package/dist/partitioned-hnsw.d.ts +65 -0
- package/dist/partitioned-hnsw.d.ts.map +1 -0
- package/dist/partitioned-hnsw.js +209 -0
- package/dist/partitioned-hnsw.js.map +1 -0
- package/dist/persistent-sona.d.ts +144 -0
- package/dist/persistent-sona.d.ts.map +1 -0
- package/dist/persistent-sona.js +333 -0
- package/dist/persistent-sona.js.map +1 -0
- package/dist/procedural/action-record.d.ts +19 -0
- package/dist/procedural/action-record.d.ts.map +1 -0
- package/dist/procedural/action-record.js +51 -0
- package/dist/procedural/action-record.js.map +1 -0
- package/dist/procedural/action-sequence-extractor.d.ts +25 -0
- package/dist/procedural/action-sequence-extractor.d.ts.map +1 -0
- package/dist/procedural/action-sequence-extractor.js +91 -0
- package/dist/procedural/action-sequence-extractor.js.map +1 -0
- package/dist/procedural/index.d.ts +14 -0
- package/dist/procedural/index.d.ts.map +1 -0
- package/dist/procedural/index.js +13 -0
- package/dist/procedural/index.js.map +1 -0
- package/dist/procedural/learned-skill.d.ts +17 -0
- package/dist/procedural/learned-skill.d.ts.map +1 -0
- package/dist/procedural/learned-skill.js +73 -0
- package/dist/procedural/learned-skill.js.map +1 -0
- package/dist/procedural/procedure-extractor-worker.d.ts +27 -0
- package/dist/procedural/procedure-extractor-worker.d.ts.map +1 -0
- package/dist/procedural/procedure-extractor-worker.js +39 -0
- package/dist/procedural/procedure-extractor-worker.js.map +1 -0
- package/dist/procedural/skill-registry.d.ts +25 -0
- package/dist/procedural/skill-registry.d.ts.map +1 -0
- package/dist/procedural/skill-registry.js +56 -0
- package/dist/procedural/skill-registry.js.map +1 -0
- package/dist/procedural/types.d.ts +67 -0
- package/dist/procedural/types.d.ts.map +1 -0
- package/dist/procedural/types.js +15 -0
- package/dist/procedural/types.js.map +1 -0
- package/dist/prompt-version-store.d.ts +59 -0
- package/dist/prompt-version-store.d.ts.map +1 -0
- package/dist/prompt-version-store.js +175 -0
- package/dist/prompt-version-store.js.map +1 -0
- package/dist/query-builder.d.ts +52 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +134 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/rvf-backend.d.ts +51 -0
- package/dist/rvf-backend.d.ts.map +1 -0
- package/dist/rvf-backend.js +499 -0
- package/dist/rvf-backend.js.map +1 -0
- package/dist/rvf-learning-store.d.ts +141 -0
- package/dist/rvf-learning-store.d.ts.map +1 -0
- package/dist/rvf-learning-store.js +344 -0
- package/dist/rvf-learning-store.js.map +1 -0
- package/dist/rvf-migration.d.ts +45 -0
- package/dist/rvf-migration.d.ts.map +1 -0
- package/dist/rvf-migration.js +254 -0
- package/dist/rvf-migration.js.map +1 -0
- package/dist/sqlite-backend.d.ts +127 -0
- package/dist/sqlite-backend.d.ts.map +1 -0
- package/dist/sqlite-backend.js +618 -0
- package/dist/sqlite-backend.js.map +1 -0
- package/dist/sqljs-backend.d.ts +128 -0
- package/dist/sqljs-backend.d.ts.map +1 -0
- package/dist/sqljs-backend.js +611 -0
- package/dist/sqljs-backend.js.map +1 -0
- package/dist/tier-manager.d.ts +79 -0
- package/dist/tier-manager.d.ts.map +1 -0
- package/dist/tier-manager.js +169 -0
- package/dist/tier-manager.js.map +1 -0
- package/dist/tiers/contextual.d.ts +43 -0
- package/dist/tiers/contextual.d.ts.map +1 -0
- package/dist/tiers/contextual.js +102 -0
- package/dist/tiers/contextual.js.map +1 -0
- package/dist/tiers/entity.d.ts +46 -0
- package/dist/tiers/entity.d.ts.map +1 -0
- package/dist/tiers/entity.js +106 -0
- package/dist/tiers/entity.js.map +1 -0
- package/dist/tiers/index.d.ts +4 -0
- package/dist/tiers/index.d.ts.map +1 -0
- package/dist/tiers/index.js +4 -0
- package/dist/tiers/index.js.map +1 -0
- package/dist/tiers/short-term.d.ts +42 -0
- package/dist/tiers/short-term.d.ts.map +1 -0
- package/dist/tiers/short-term.js +89 -0
- package/dist/tiers/short-term.js.map +1 -0
- package/dist/types/checkpoint.d.ts +44 -0
- package/dist/types/checkpoint.d.ts.map +1 -0
- package/dist/types/checkpoint.js +8 -0
- package/dist/types/checkpoint.js.map +1 -0
- package/dist/types.d.ts +526 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +58 -0
- package/dist/types.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SwarmCheckpointer — JSON-lines file-based graph checkpointing.
|
|
3
|
+
*
|
|
4
|
+
* Each checkpoint is appended as a single JSON line to a file,
|
|
5
|
+
* similar to the CostTracker pattern used elsewhere in the project.
|
|
6
|
+
* No native SQLite dependency required.
|
|
7
|
+
*/
|
|
8
|
+
import type { AgentState, SwarmCheckpoint, CheckpointMeta } from './types/checkpoint.js';
|
|
9
|
+
export type { AgentState, SwarmCheckpoint, CheckpointMeta };
|
|
10
|
+
/** Configuration accepted by the checkpointer constructor. */
|
|
11
|
+
export interface CheckpointerConfig {
|
|
12
|
+
dbPath: string;
|
|
13
|
+
swarmId: string;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Persists and retrieves full swarm checkpoints using a JSON-lines file.
|
|
18
|
+
*
|
|
19
|
+
* Each line in the file is a self-contained JSON object representing one
|
|
20
|
+
* {@link SwarmCheckpoint}. Newest entries are always appended at the end.
|
|
21
|
+
*/
|
|
22
|
+
export declare class SwarmCheckpointer {
|
|
23
|
+
private stepCounter;
|
|
24
|
+
private readonly dbPath;
|
|
25
|
+
private readonly swarmId;
|
|
26
|
+
private readonly sessionId;
|
|
27
|
+
constructor(config: CheckpointerConfig);
|
|
28
|
+
/** Read all checkpoints from the file (oldest-first). */
|
|
29
|
+
private readAll;
|
|
30
|
+
/** Overwrite the file with the given checkpoints. */
|
|
31
|
+
private writeAll;
|
|
32
|
+
/** Compute a deterministic SHA-256 hash of the serialisable state. */
|
|
33
|
+
private computeHash;
|
|
34
|
+
/**
|
|
35
|
+
* Save a full checkpoint of the entire swarm.
|
|
36
|
+
*
|
|
37
|
+
* @returns The generated `checkpointId`.
|
|
38
|
+
*/
|
|
39
|
+
saveFull(agentStates: AgentState[], messageQueues: Record<string, unknown[]>, taskResults: Record<string, unknown>, trigger: SwarmCheckpoint['trigger'], parentCheckpointId?: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Save an incremental checkpoint that patches one agent's state.
|
|
42
|
+
*
|
|
43
|
+
* Loads the latest checkpoint, replaces (or appends) the given agent's
|
|
44
|
+
* state, and writes a new checkpoint line.
|
|
45
|
+
*/
|
|
46
|
+
saveIncremental(agentId: string, newState: AgentState): void;
|
|
47
|
+
/**
|
|
48
|
+
* Load a checkpoint by its ID.
|
|
49
|
+
*
|
|
50
|
+
* @returns The checkpoint, or `null` if not found.
|
|
51
|
+
*/
|
|
52
|
+
load(checkpointId: string): SwarmCheckpoint | null;
|
|
53
|
+
/**
|
|
54
|
+
* List checkpoint metadata, newest-first.
|
|
55
|
+
*
|
|
56
|
+
* @param limit Maximum number of entries to return (default 20).
|
|
57
|
+
*/
|
|
58
|
+
list(limit?: number): CheckpointMeta[];
|
|
59
|
+
/**
|
|
60
|
+
* Return the most recent checkpoint, or `null` if none exist.
|
|
61
|
+
*/
|
|
62
|
+
latest(): SwarmCheckpoint | null;
|
|
63
|
+
/**
|
|
64
|
+
* Compute the difference between two checkpoints in terms of agents.
|
|
65
|
+
*/
|
|
66
|
+
diff(fromId: string, toId: string): {
|
|
67
|
+
addedAgents: string[];
|
|
68
|
+
removedAgents: string[];
|
|
69
|
+
changedAgents: string[];
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Purge checkpoints older than the given number of days.
|
|
73
|
+
*
|
|
74
|
+
* @returns The number of checkpoints removed.
|
|
75
|
+
*/
|
|
76
|
+
purge(olderThanDays?: number): number;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=checkpointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpointer.d.ts","sourceRoot":"","sources":["../src/checkpointer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEzF,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,kBAAkB;IAUtC,yDAAyD;IACzD,OAAO,CAAC,OAAO;IAUf,qDAAqD;IACrD,OAAO,CAAC,QAAQ;IAKhB,sEAAsE;IACtE,OAAO,CAAC,WAAW;IAanB;;;;OAIG;IACH,QAAQ,CACN,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,EACnC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM;IAsBT;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAgB5D;;;;OAIG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAKlD;;;;OAIG;IACH,IAAI,CAAC,KAAK,SAAK,GAAG,cAAc,EAAE;IAiBlC;;OAEG;IACH,MAAM,IAAI,eAAe,GAAG,IAAI;IAMhC;;OAEG;IACH,IAAI,CACF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE;IAwB9E;;;;OAIG;IACH,KAAK,CAAC,aAAa,SAAI,GAAG,MAAM;CAQjC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SwarmCheckpointer — JSON-lines file-based graph checkpointing.
|
|
3
|
+
*
|
|
4
|
+
* Each checkpoint is appended as a single JSON line to a file,
|
|
5
|
+
* similar to the CostTracker pattern used elsewhere in the project.
|
|
6
|
+
* No native SQLite dependency required.
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID, createHash } from 'node:crypto';
|
|
9
|
+
import { existsSync, readFileSync, appendFileSync, writeFileSync } from 'node:fs';
|
|
10
|
+
/**
|
|
11
|
+
* Persists and retrieves full swarm checkpoints using a JSON-lines file.
|
|
12
|
+
*
|
|
13
|
+
* Each line in the file is a self-contained JSON object representing one
|
|
14
|
+
* {@link SwarmCheckpoint}. Newest entries are always appended at the end.
|
|
15
|
+
*/
|
|
16
|
+
export class SwarmCheckpointer {
|
|
17
|
+
stepCounter = 0;
|
|
18
|
+
dbPath;
|
|
19
|
+
swarmId;
|
|
20
|
+
sessionId;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.dbPath = config.dbPath;
|
|
23
|
+
this.swarmId = config.swarmId;
|
|
24
|
+
this.sessionId = config.sessionId;
|
|
25
|
+
}
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Persistence helpers
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/** Read all checkpoints from the file (oldest-first). */
|
|
30
|
+
readAll() {
|
|
31
|
+
if (!existsSync(this.dbPath))
|
|
32
|
+
return [];
|
|
33
|
+
const raw = readFileSync(this.dbPath, 'utf-8').trim();
|
|
34
|
+
if (!raw)
|
|
35
|
+
return [];
|
|
36
|
+
return raw
|
|
37
|
+
.split('\n')
|
|
38
|
+
.filter(Boolean)
|
|
39
|
+
.map((line) => JSON.parse(line));
|
|
40
|
+
}
|
|
41
|
+
/** Overwrite the file with the given checkpoints. */
|
|
42
|
+
writeAll(checkpoints) {
|
|
43
|
+
const data = checkpoints.map((c) => JSON.stringify(c)).join('\n') + (checkpoints.length ? '\n' : '');
|
|
44
|
+
writeFileSync(this.dbPath, data, 'utf-8');
|
|
45
|
+
}
|
|
46
|
+
/** Compute a deterministic SHA-256 hash of the serialisable state. */
|
|
47
|
+
computeHash(agentStates, messageQueues, taskResults) {
|
|
48
|
+
const payload = JSON.stringify({ agentStates, messageQueues, taskResults });
|
|
49
|
+
return createHash('sha256').update(payload).digest('hex');
|
|
50
|
+
}
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Public API
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* Save a full checkpoint of the entire swarm.
|
|
56
|
+
*
|
|
57
|
+
* @returns The generated `checkpointId`.
|
|
58
|
+
*/
|
|
59
|
+
saveFull(agentStates, messageQueues, taskResults, trigger, parentCheckpointId) {
|
|
60
|
+
const checkpointId = randomUUID();
|
|
61
|
+
this.stepCounter += 1;
|
|
62
|
+
const checkpoint = {
|
|
63
|
+
checkpointId,
|
|
64
|
+
swarmId: this.swarmId,
|
|
65
|
+
sessionId: this.sessionId,
|
|
66
|
+
step: this.stepCounter,
|
|
67
|
+
trigger,
|
|
68
|
+
agentStates,
|
|
69
|
+
messageQueues,
|
|
70
|
+
taskResults,
|
|
71
|
+
stateHash: this.computeHash(agentStates, messageQueues, taskResults),
|
|
72
|
+
createdAt: new Date().toISOString(),
|
|
73
|
+
parentCheckpointId,
|
|
74
|
+
};
|
|
75
|
+
appendFileSync(this.dbPath, JSON.stringify(checkpoint) + '\n', 'utf-8');
|
|
76
|
+
return checkpointId;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Save an incremental checkpoint that patches one agent's state.
|
|
80
|
+
*
|
|
81
|
+
* Loads the latest checkpoint, replaces (or appends) the given agent's
|
|
82
|
+
* state, and writes a new checkpoint line.
|
|
83
|
+
*/
|
|
84
|
+
saveIncremental(agentId, newState) {
|
|
85
|
+
const prev = this.latest();
|
|
86
|
+
const agentStates = prev ? [...prev.agentStates] : [];
|
|
87
|
+
const idx = agentStates.findIndex((a) => a.agentId === agentId);
|
|
88
|
+
if (idx >= 0) {
|
|
89
|
+
agentStates[idx] = newState;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
agentStates.push(newState);
|
|
93
|
+
}
|
|
94
|
+
const messageQueues = prev?.messageQueues ?? {};
|
|
95
|
+
const taskResults = prev?.taskResults ?? {};
|
|
96
|
+
this.saveFull(agentStates, messageQueues, taskResults, 'manual', prev?.checkpointId);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Load a checkpoint by its ID.
|
|
100
|
+
*
|
|
101
|
+
* @returns The checkpoint, or `null` if not found.
|
|
102
|
+
*/
|
|
103
|
+
load(checkpointId) {
|
|
104
|
+
const all = this.readAll();
|
|
105
|
+
return all.find((c) => c.checkpointId === checkpointId) ?? null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* List checkpoint metadata, newest-first.
|
|
109
|
+
*
|
|
110
|
+
* @param limit Maximum number of entries to return (default 20).
|
|
111
|
+
*/
|
|
112
|
+
list(limit = 20) {
|
|
113
|
+
const all = this.readAll();
|
|
114
|
+
return all
|
|
115
|
+
.sort((a, b) => b.step - a.step)
|
|
116
|
+
.slice(0, limit)
|
|
117
|
+
.map((c) => ({
|
|
118
|
+
checkpointId: c.checkpointId,
|
|
119
|
+
swarmId: c.swarmId,
|
|
120
|
+
sessionId: c.sessionId,
|
|
121
|
+
step: c.step,
|
|
122
|
+
trigger: c.trigger,
|
|
123
|
+
agentCount: c.agentStates.length,
|
|
124
|
+
stateHash: c.stateHash,
|
|
125
|
+
createdAt: c.createdAt,
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Return the most recent checkpoint, or `null` if none exist.
|
|
130
|
+
*/
|
|
131
|
+
latest() {
|
|
132
|
+
const all = this.readAll();
|
|
133
|
+
if (all.length === 0)
|
|
134
|
+
return null;
|
|
135
|
+
return all.reduce((best, c) => (c.step > best.step ? c : best), all[0]);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Compute the difference between two checkpoints in terms of agents.
|
|
139
|
+
*/
|
|
140
|
+
diff(fromId, toId) {
|
|
141
|
+
const from = this.load(fromId);
|
|
142
|
+
const to = this.load(toId);
|
|
143
|
+
const fromIds = new Set((from?.agentStates ?? []).map((a) => a.agentId));
|
|
144
|
+
const toIds = new Set((to?.agentStates ?? []).map((a) => a.agentId));
|
|
145
|
+
const addedAgents = [...toIds].filter((id) => !fromIds.has(id));
|
|
146
|
+
const removedAgents = [...fromIds].filter((id) => !toIds.has(id));
|
|
147
|
+
const changedAgents = [];
|
|
148
|
+
if (from && to) {
|
|
149
|
+
for (const toAgent of to.agentStates) {
|
|
150
|
+
if (!fromIds.has(toAgent.agentId))
|
|
151
|
+
continue; // added, not changed
|
|
152
|
+
const fromAgent = from.agentStates.find((a) => a.agentId === toAgent.agentId);
|
|
153
|
+
if (fromAgent && JSON.stringify(fromAgent) !== JSON.stringify(toAgent)) {
|
|
154
|
+
changedAgents.push(toAgent.agentId);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { addedAgents, removedAgents, changedAgents };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Purge checkpoints older than the given number of days.
|
|
162
|
+
*
|
|
163
|
+
* @returns The number of checkpoints removed.
|
|
164
|
+
*/
|
|
165
|
+
purge(olderThanDays = 7) {
|
|
166
|
+
const all = this.readAll();
|
|
167
|
+
const cutoff = Date.now() - olderThanDays * 86_400_000;
|
|
168
|
+
const kept = all.filter((c) => new Date(c.createdAt).getTime() > cutoff);
|
|
169
|
+
const removed = all.length - kept.length;
|
|
170
|
+
this.writeAll(kept);
|
|
171
|
+
return removed;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=checkpointer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpointer.js","sourceRoot":"","sources":["../src/checkpointer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ControllerRegistry - Central controller lifecycle management for AgentDB v1
|
|
3
|
+
*
|
|
4
|
+
* Wraps the AgentDB class and adds CLI-specific controllers from @monomind/memory.
|
|
5
|
+
* Manages initialization (level-based ordering), health checks, and graceful shutdown.
|
|
6
|
+
*
|
|
7
|
+
* Per ADR-053: Replaces memory-initializer.js's raw sql.js usage with a unified
|
|
8
|
+
* controller ecosystem routing all memory operations through AgentDB v1.
|
|
9
|
+
*
|
|
10
|
+
* @module @monomind/memory/controller-registry
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from 'node:events';
|
|
13
|
+
import type { IMemoryBackend, EmbeddingGenerator, SONAMode } from './types.js';
|
|
14
|
+
import type { LearningBridgeConfig } from './learning-bridge.js';
|
|
15
|
+
import type { MemoryGraphConfig } from './memory-graph.js';
|
|
16
|
+
import type { CacheConfig } from './types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Controllers accessible via AgentDB.getController()
|
|
19
|
+
*/
|
|
20
|
+
export type AgentDBControllerName = 'reasoningBank' | 'skills' | 'reflexion' | 'causalGraph' | 'causalRecall' | 'learningSystem' | 'explainableRecall' | 'nightlyLearner' | 'graphTransformer' | 'mutationGuard' | 'attestationLog' | 'vectorBackend' | 'graphAdapter';
|
|
21
|
+
/**
|
|
22
|
+
* CLI-layer controllers (from @monomind/memory or new)
|
|
23
|
+
*/
|
|
24
|
+
export type CLIControllerName = 'learningBridge' | 'memoryGraph' | 'agentMemoryScope' | 'tieredCache' | 'hybridSearch' | 'federatedSession' | 'semanticRouter' | 'sonaTrajectory' | 'hierarchicalMemory' | 'memoryConsolidation' | 'batchOperations' | 'contextSynthesizer' | 'gnnService' | 'rvfOptimizer' | 'mmrDiversityRanker' | 'guardedVectorBackend';
|
|
25
|
+
/**
|
|
26
|
+
* All controller names
|
|
27
|
+
*/
|
|
28
|
+
export type ControllerName = AgentDBControllerName | CLIControllerName;
|
|
29
|
+
/**
|
|
30
|
+
* Initialization level for dependency ordering
|
|
31
|
+
*/
|
|
32
|
+
export interface InitLevel {
|
|
33
|
+
level: number;
|
|
34
|
+
controllers: ControllerName[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Individual controller health status
|
|
38
|
+
*/
|
|
39
|
+
export interface ControllerHealth {
|
|
40
|
+
name: ControllerName;
|
|
41
|
+
status: 'healthy' | 'degraded' | 'unavailable';
|
|
42
|
+
initTimeMs: number;
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Aggregated health report for all controllers
|
|
47
|
+
*/
|
|
48
|
+
export interface RegistryHealthReport {
|
|
49
|
+
status: 'healthy' | 'degraded' | 'unhealthy';
|
|
50
|
+
controllers: ControllerHealth[];
|
|
51
|
+
agentdbAvailable: boolean;
|
|
52
|
+
initTimeMs: number;
|
|
53
|
+
timestamp: number;
|
|
54
|
+
activeControllers: number;
|
|
55
|
+
totalControllers: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Runtime configuration for controller activation
|
|
59
|
+
*/
|
|
60
|
+
export interface RuntimeConfig {
|
|
61
|
+
/** Database path for AgentDB */
|
|
62
|
+
dbPath?: string;
|
|
63
|
+
/** Vector dimension (default: 384 for MiniLM) */
|
|
64
|
+
dimension?: number;
|
|
65
|
+
/** Embedding generator function */
|
|
66
|
+
embeddingGenerator?: EmbeddingGenerator;
|
|
67
|
+
/** Memory backend config */
|
|
68
|
+
memory?: {
|
|
69
|
+
enableHNSW?: boolean;
|
|
70
|
+
learningBridge?: Partial<LearningBridgeConfig>;
|
|
71
|
+
memoryGraph?: Partial<MemoryGraphConfig>;
|
|
72
|
+
tieredCache?: Partial<CacheConfig>;
|
|
73
|
+
};
|
|
74
|
+
/** Neural config */
|
|
75
|
+
neural?: {
|
|
76
|
+
enabled?: boolean;
|
|
77
|
+
modelPath?: string;
|
|
78
|
+
sonaMode?: SONAMode;
|
|
79
|
+
};
|
|
80
|
+
/** Controllers to explicitly enable/disable */
|
|
81
|
+
controllers?: Partial<Record<ControllerName, boolean>>;
|
|
82
|
+
/** Backend instance to use (if pre-created) */
|
|
83
|
+
backend?: IMemoryBackend;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Level-based initialization order per ADR-053.
|
|
87
|
+
* Controllers at each level can be initialized in parallel.
|
|
88
|
+
* Each level must complete before the next begins.
|
|
89
|
+
*/
|
|
90
|
+
export declare const INIT_LEVELS: InitLevel[];
|
|
91
|
+
/**
|
|
92
|
+
* Central registry for AgentDB v1 controller lifecycle management.
|
|
93
|
+
*
|
|
94
|
+
* Handles:
|
|
95
|
+
* - Level-based initialization ordering (levels 0-6)
|
|
96
|
+
* - Graceful degradation (each controller fails independently)
|
|
97
|
+
* - Config-driven activation (controllers only instantiate when enabled)
|
|
98
|
+
* - Health check aggregation across all controllers
|
|
99
|
+
* - Ordered shutdown (reverse initialization order)
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const registry = new ControllerRegistry();
|
|
104
|
+
* await registry.initialize({
|
|
105
|
+
* dbPath: './data/memory.db',
|
|
106
|
+
* dimension: 384,
|
|
107
|
+
* memory: {
|
|
108
|
+
* enableHNSW: true,
|
|
109
|
+
* learningBridge: { sonaMode: 'balanced' },
|
|
110
|
+
* memoryGraph: { pageRankDamping: 0.85 },
|
|
111
|
+
* },
|
|
112
|
+
* });
|
|
113
|
+
*
|
|
114
|
+
* const reasoning = registry.get<ReasoningBank>('reasoningBank');
|
|
115
|
+
* const graph = registry.get<MemoryGraph>('memoryGraph');
|
|
116
|
+
*
|
|
117
|
+
* await registry.shutdown();
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export declare class ControllerRegistry extends EventEmitter {
|
|
121
|
+
private controllers;
|
|
122
|
+
private agentdb;
|
|
123
|
+
private backend;
|
|
124
|
+
private config;
|
|
125
|
+
private initialized;
|
|
126
|
+
private initTimeMs;
|
|
127
|
+
/**
|
|
128
|
+
* Initialize all controllers in level-based order.
|
|
129
|
+
*
|
|
130
|
+
* Each level's controllers are initialized in parallel within the level.
|
|
131
|
+
* Failures are isolated: a controller that fails to init is marked as
|
|
132
|
+
* unavailable but does not block other controllers.
|
|
133
|
+
*/
|
|
134
|
+
initialize(config?: RuntimeConfig): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Shutdown all controllers in reverse initialization order.
|
|
137
|
+
*/
|
|
138
|
+
shutdown(): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Get a controller instance by name.
|
|
141
|
+
* Returns null if the controller is not initialized or unavailable.
|
|
142
|
+
*/
|
|
143
|
+
get<T>(name: ControllerName): T | null;
|
|
144
|
+
/**
|
|
145
|
+
* Check if a controller is enabled and initialized.
|
|
146
|
+
*/
|
|
147
|
+
isEnabled(name: ControllerName): boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Aggregate health check across all controllers.
|
|
150
|
+
*/
|
|
151
|
+
healthCheck(): Promise<RegistryHealthReport>;
|
|
152
|
+
/**
|
|
153
|
+
* Get the underlying AgentDB instance.
|
|
154
|
+
*/
|
|
155
|
+
getAgentDB(): any;
|
|
156
|
+
/**
|
|
157
|
+
* Get the memory backend.
|
|
158
|
+
*/
|
|
159
|
+
getBackend(): IMemoryBackend | null;
|
|
160
|
+
/**
|
|
161
|
+
* Check if the registry is initialized.
|
|
162
|
+
*/
|
|
163
|
+
isInitialized(): boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Get the number of active (successfully initialized) controllers.
|
|
166
|
+
*/
|
|
167
|
+
getActiveCount(): number;
|
|
168
|
+
/**
|
|
169
|
+
* List all registered controller names and their status.
|
|
170
|
+
*/
|
|
171
|
+
listControllers(): Array<{
|
|
172
|
+
name: ControllerName;
|
|
173
|
+
enabled: boolean;
|
|
174
|
+
level: number;
|
|
175
|
+
}>;
|
|
176
|
+
/**
|
|
177
|
+
* Initialize AgentDB instance with dynamic import and fallback chain.
|
|
178
|
+
*/
|
|
179
|
+
private initAgentDB;
|
|
180
|
+
/**
|
|
181
|
+
* Check whether a controller should be initialized based on config.
|
|
182
|
+
*/
|
|
183
|
+
private isControllerEnabled;
|
|
184
|
+
/**
|
|
185
|
+
* Initialize a single controller with error isolation.
|
|
186
|
+
*/
|
|
187
|
+
private initController;
|
|
188
|
+
/**
|
|
189
|
+
* Factory method to create a controller instance.
|
|
190
|
+
* Handles CLI-layer controllers; AgentDB-internal controllers are
|
|
191
|
+
* accessed via agentdb.getController().
|
|
192
|
+
*/
|
|
193
|
+
private createController;
|
|
194
|
+
/**
|
|
195
|
+
* Shutdown a single controller gracefully.
|
|
196
|
+
*/
|
|
197
|
+
private shutdownController;
|
|
198
|
+
/**
|
|
199
|
+
* Create an EmbeddingService for controllers that need it.
|
|
200
|
+
* Uses the config's embedding generator or creates a minimal local service.
|
|
201
|
+
*/
|
|
202
|
+
private createEmbeddingService;
|
|
203
|
+
/**
|
|
204
|
+
* Lightweight in-memory tiered store (fallback when HierarchicalMemory
|
|
205
|
+
* cannot be initialized from agentdb).
|
|
206
|
+
* Enforces per-tier size limits to prevent unbounded memory growth.
|
|
207
|
+
*/
|
|
208
|
+
private createTieredMemoryStub;
|
|
209
|
+
/**
|
|
210
|
+
* No-op consolidation stub (fallback when MemoryConsolidation
|
|
211
|
+
* cannot be initialized from agentdb).
|
|
212
|
+
*/
|
|
213
|
+
private createConsolidationStub;
|
|
214
|
+
}
|
|
215
|
+
export default ControllerRegistry;
|
|
216
|
+
//# sourceMappingURL=controller-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-registry.d.ts","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"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"}
|