@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.
Files changed (178) hide show
  1. package/README.md +902 -0
  2. package/dist/agent-memory-scope.d.ts +131 -0
  3. package/dist/agent-memory-scope.d.ts.map +1 -0
  4. package/dist/agent-memory-scope.js +230 -0
  5. package/dist/agent-memory-scope.js.map +1 -0
  6. package/dist/agentdb-adapter.d.ts +165 -0
  7. package/dist/agentdb-adapter.d.ts.map +1 -0
  8. package/dist/agentdb-adapter.js +836 -0
  9. package/dist/agentdb-adapter.js.map +1 -0
  10. package/dist/agentdb-backend.d.ts +218 -0
  11. package/dist/agentdb-backend.d.ts.map +1 -0
  12. package/dist/agentdb-backend.js +879 -0
  13. package/dist/agentdb-backend.js.map +1 -0
  14. package/dist/auto-memory-bridge.d.ts +230 -0
  15. package/dist/auto-memory-bridge.d.ts.map +1 -0
  16. package/dist/auto-memory-bridge.js +730 -0
  17. package/dist/auto-memory-bridge.js.map +1 -0
  18. package/dist/cache-manager.d.ts +134 -0
  19. package/dist/cache-manager.d.ts.map +1 -0
  20. package/dist/cache-manager.js +410 -0
  21. package/dist/cache-manager.js.map +1 -0
  22. package/dist/checkpointer.d.ts +78 -0
  23. package/dist/checkpointer.d.ts.map +1 -0
  24. package/dist/checkpointer.js +174 -0
  25. package/dist/checkpointer.js.map +1 -0
  26. package/dist/controller-registry.d.ts +216 -0
  27. package/dist/controller-registry.d.ts.map +1 -0
  28. package/dist/controller-registry.js +897 -0
  29. package/dist/controller-registry.js.map +1 -0
  30. package/dist/database-provider.d.ts +87 -0
  31. package/dist/database-provider.d.ts.map +1 -0
  32. package/dist/database-provider.js +434 -0
  33. package/dist/database-provider.js.map +1 -0
  34. package/dist/diskann-backend.d.ts +126 -0
  35. package/dist/diskann-backend.d.ts.map +1 -0
  36. package/dist/diskann-backend.js +324 -0
  37. package/dist/diskann-backend.js.map +1 -0
  38. package/dist/episodic-store.d.ts +58 -0
  39. package/dist/episodic-store.d.ts.map +1 -0
  40. package/dist/episodic-store.js +160 -0
  41. package/dist/episodic-store.js.map +1 -0
  42. package/dist/hnsw-index.d.ts +111 -0
  43. package/dist/hnsw-index.d.ts.map +1 -0
  44. package/dist/hnsw-index.js +778 -0
  45. package/dist/hnsw-index.js.map +1 -0
  46. package/dist/hnsw-lite.d.ts +29 -0
  47. package/dist/hnsw-lite.d.ts.map +1 -0
  48. package/dist/hnsw-lite.js +236 -0
  49. package/dist/hnsw-lite.js.map +1 -0
  50. package/dist/hybrid-backend.d.ts +299 -0
  51. package/dist/hybrid-backend.d.ts.map +1 -0
  52. package/dist/hybrid-backend.js +804 -0
  53. package/dist/hybrid-backend.js.map +1 -0
  54. package/dist/index.d.ts +228 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +379 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/knowledge/document-chunker.d.ts +22 -0
  59. package/dist/knowledge/document-chunker.d.ts.map +1 -0
  60. package/dist/knowledge/document-chunker.js +52 -0
  61. package/dist/knowledge/document-chunker.js.map +1 -0
  62. package/dist/knowledge/index.d.ts +12 -0
  63. package/dist/knowledge/index.d.ts.map +1 -0
  64. package/dist/knowledge/index.js +9 -0
  65. package/dist/knowledge/index.js.map +1 -0
  66. package/dist/knowledge/knowledge-retriever.d.ts +48 -0
  67. package/dist/knowledge/knowledge-retriever.d.ts.map +1 -0
  68. package/dist/knowledge/knowledge-retriever.js +80 -0
  69. package/dist/knowledge/knowledge-retriever.js.map +1 -0
  70. package/dist/knowledge/knowledge-store.d.ts +58 -0
  71. package/dist/knowledge/knowledge-store.d.ts.map +1 -0
  72. package/dist/knowledge/knowledge-store.js +121 -0
  73. package/dist/knowledge/knowledge-store.js.map +1 -0
  74. package/dist/learning-bridge.d.ts +162 -0
  75. package/dist/learning-bridge.d.ts.map +1 -0
  76. package/dist/learning-bridge.js +522 -0
  77. package/dist/learning-bridge.js.map +1 -0
  78. package/dist/memory-graph.d.ts +123 -0
  79. package/dist/memory-graph.d.ts.map +1 -0
  80. package/dist/memory-graph.js +412 -0
  81. package/dist/memory-graph.js.map +1 -0
  82. package/dist/migration.d.ts +68 -0
  83. package/dist/migration.d.ts.map +1 -0
  84. package/dist/migration.js +513 -0
  85. package/dist/migration.js.map +1 -0
  86. package/dist/partitioned-hnsw.d.ts +65 -0
  87. package/dist/partitioned-hnsw.d.ts.map +1 -0
  88. package/dist/partitioned-hnsw.js +209 -0
  89. package/dist/partitioned-hnsw.js.map +1 -0
  90. package/dist/persistent-sona.d.ts +144 -0
  91. package/dist/persistent-sona.d.ts.map +1 -0
  92. package/dist/persistent-sona.js +333 -0
  93. package/dist/persistent-sona.js.map +1 -0
  94. package/dist/procedural/action-record.d.ts +19 -0
  95. package/dist/procedural/action-record.d.ts.map +1 -0
  96. package/dist/procedural/action-record.js +51 -0
  97. package/dist/procedural/action-record.js.map +1 -0
  98. package/dist/procedural/action-sequence-extractor.d.ts +25 -0
  99. package/dist/procedural/action-sequence-extractor.d.ts.map +1 -0
  100. package/dist/procedural/action-sequence-extractor.js +91 -0
  101. package/dist/procedural/action-sequence-extractor.js.map +1 -0
  102. package/dist/procedural/index.d.ts +14 -0
  103. package/dist/procedural/index.d.ts.map +1 -0
  104. package/dist/procedural/index.js +13 -0
  105. package/dist/procedural/index.js.map +1 -0
  106. package/dist/procedural/learned-skill.d.ts +17 -0
  107. package/dist/procedural/learned-skill.d.ts.map +1 -0
  108. package/dist/procedural/learned-skill.js +73 -0
  109. package/dist/procedural/learned-skill.js.map +1 -0
  110. package/dist/procedural/procedure-extractor-worker.d.ts +27 -0
  111. package/dist/procedural/procedure-extractor-worker.d.ts.map +1 -0
  112. package/dist/procedural/procedure-extractor-worker.js +39 -0
  113. package/dist/procedural/procedure-extractor-worker.js.map +1 -0
  114. package/dist/procedural/skill-registry.d.ts +25 -0
  115. package/dist/procedural/skill-registry.d.ts.map +1 -0
  116. package/dist/procedural/skill-registry.js +56 -0
  117. package/dist/procedural/skill-registry.js.map +1 -0
  118. package/dist/procedural/types.d.ts +67 -0
  119. package/dist/procedural/types.d.ts.map +1 -0
  120. package/dist/procedural/types.js +15 -0
  121. package/dist/procedural/types.js.map +1 -0
  122. package/dist/prompt-version-store.d.ts +59 -0
  123. package/dist/prompt-version-store.d.ts.map +1 -0
  124. package/dist/prompt-version-store.js +175 -0
  125. package/dist/prompt-version-store.js.map +1 -0
  126. package/dist/query-builder.d.ts +52 -0
  127. package/dist/query-builder.d.ts.map +1 -0
  128. package/dist/query-builder.js +134 -0
  129. package/dist/query-builder.js.map +1 -0
  130. package/dist/rvf-backend.d.ts +51 -0
  131. package/dist/rvf-backend.d.ts.map +1 -0
  132. package/dist/rvf-backend.js +499 -0
  133. package/dist/rvf-backend.js.map +1 -0
  134. package/dist/rvf-learning-store.d.ts +141 -0
  135. package/dist/rvf-learning-store.d.ts.map +1 -0
  136. package/dist/rvf-learning-store.js +344 -0
  137. package/dist/rvf-learning-store.js.map +1 -0
  138. package/dist/rvf-migration.d.ts +45 -0
  139. package/dist/rvf-migration.d.ts.map +1 -0
  140. package/dist/rvf-migration.js +254 -0
  141. package/dist/rvf-migration.js.map +1 -0
  142. package/dist/sqlite-backend.d.ts +127 -0
  143. package/dist/sqlite-backend.d.ts.map +1 -0
  144. package/dist/sqlite-backend.js +618 -0
  145. package/dist/sqlite-backend.js.map +1 -0
  146. package/dist/sqljs-backend.d.ts +128 -0
  147. package/dist/sqljs-backend.d.ts.map +1 -0
  148. package/dist/sqljs-backend.js +611 -0
  149. package/dist/sqljs-backend.js.map +1 -0
  150. package/dist/tier-manager.d.ts +79 -0
  151. package/dist/tier-manager.d.ts.map +1 -0
  152. package/dist/tier-manager.js +169 -0
  153. package/dist/tier-manager.js.map +1 -0
  154. package/dist/tiers/contextual.d.ts +43 -0
  155. package/dist/tiers/contextual.d.ts.map +1 -0
  156. package/dist/tiers/contextual.js +102 -0
  157. package/dist/tiers/contextual.js.map +1 -0
  158. package/dist/tiers/entity.d.ts +46 -0
  159. package/dist/tiers/entity.d.ts.map +1 -0
  160. package/dist/tiers/entity.js +106 -0
  161. package/dist/tiers/entity.js.map +1 -0
  162. package/dist/tiers/index.d.ts +4 -0
  163. package/dist/tiers/index.d.ts.map +1 -0
  164. package/dist/tiers/index.js +4 -0
  165. package/dist/tiers/index.js.map +1 -0
  166. package/dist/tiers/short-term.d.ts +42 -0
  167. package/dist/tiers/short-term.d.ts.map +1 -0
  168. package/dist/tiers/short-term.js +89 -0
  169. package/dist/tiers/short-term.js.map +1 -0
  170. package/dist/types/checkpoint.d.ts +44 -0
  171. package/dist/types/checkpoint.d.ts.map +1 -0
  172. package/dist/types/checkpoint.js +8 -0
  173. package/dist/types/checkpoint.js.map +1 -0
  174. package/dist/types.d.ts +526 -0
  175. package/dist/types.d.ts.map +1 -0
  176. package/dist/types.js +58 -0
  177. package/dist/types.js.map +1 -0
  178. 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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,cAAc,EAId,kBAAkB,EAClB,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,QAAQ,GACR,WAAW,GACX,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,gBAAgB,GAChB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,oBAAoB,GACpB,YAAY,GACZ,cAAc,GACd,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,4BAA4B;IAC5B,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC/C,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;KACpC,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,CAAC;IAEF,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvD,+CAA+C;IAC/C,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAgBD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,EAelC,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,WAAW,CAAmD;IACtE,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAK;IAEvB;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC/B;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,GAAG,IAAI;IAoBtC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAgBxC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA+ClD;;OAEG;IACH,UAAU,IAAI,GAAG;IAIjB;;OAEG;IACH,UAAU,IAAI,cAAc,GAAG,IAAI;IAInC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,cAAc,IAAI,MAAM;IAQxB;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAUnF;;OAEG;YACW,WAAW;IAkDzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6D3B;;OAEG;YACW,cAAc;IAqC5B;;;;OAIG;YACW,gBAAgB;IAkT9B;;OAEG;YACW,kBAAkB;IAuBhC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAuC9B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;CAOhC;AAED,eAAe,kBAAkB,CAAC"}