@theihtisham/agent-shadow-brain 6.0.0 → 6.0.3

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 (191) hide show
  1. package/CHANGELOG.md +372 -0
  2. package/README.md +366 -355
  3. package/dist/brain/auto-update.js +1 -1
  4. package/dist/brain/brain-3d.d.ts +79 -0
  5. package/dist/brain/brain-3d.d.ts.map +1 -0
  6. package/dist/brain/brain-3d.js +468 -0
  7. package/dist/brain/brain-3d.js.map +1 -0
  8. package/dist/brain/brain-active-learner.d.ts +74 -0
  9. package/dist/brain/brain-active-learner.d.ts.map +1 -0
  10. package/dist/brain/brain-active-learner.js +425 -0
  11. package/dist/brain/brain-active-learner.js.map +1 -0
  12. package/dist/brain/brain-ascii.d.ts +32 -0
  13. package/dist/brain/brain-ascii.d.ts.map +1 -0
  14. package/dist/brain/brain-ascii.js +402 -0
  15. package/dist/brain/brain-ascii.js.map +1 -0
  16. package/dist/brain/brain-cinema.d.ts +45 -0
  17. package/dist/brain/brain-cinema.d.ts.map +1 -0
  18. package/dist/brain/brain-cinema.js +393 -0
  19. package/dist/brain/brain-cinema.js.map +1 -0
  20. package/dist/brain/brain-coach.d.ts +45 -0
  21. package/dist/brain/brain-coach.d.ts.map +1 -0
  22. package/dist/brain/brain-coach.js +383 -0
  23. package/dist/brain/brain-coach.js.map +1 -0
  24. package/dist/brain/brain-consolidator.d.ts +56 -0
  25. package/dist/brain/brain-consolidator.d.ts.map +1 -0
  26. package/dist/brain/brain-consolidator.js +386 -0
  27. package/dist/brain/brain-consolidator.js.map +1 -0
  28. package/dist/brain/brain-contradictions.d.ts +57 -0
  29. package/dist/brain/brain-contradictions.d.ts.map +1 -0
  30. package/dist/brain/brain-contradictions.js +443 -0
  31. package/dist/brain/brain-contradictions.js.map +1 -0
  32. package/dist/brain/brain-diff.d.ts +61 -0
  33. package/dist/brain/brain-diff.d.ts.map +1 -0
  34. package/dist/brain/brain-diff.js +439 -0
  35. package/dist/brain/brain-diff.js.map +1 -0
  36. package/dist/brain/brain-dna.d.ts +59 -0
  37. package/dist/brain/brain-dna.d.ts.map +1 -0
  38. package/dist/brain/brain-dna.js +336 -0
  39. package/dist/brain/brain-dna.js.map +1 -0
  40. package/dist/brain/brain-doppelganger.d.ts +32 -0
  41. package/dist/brain/brain-doppelganger.d.ts.map +1 -0
  42. package/dist/brain/brain-doppelganger.js +417 -0
  43. package/dist/brain/brain-doppelganger.js.map +1 -0
  44. package/dist/brain/brain-graph-walker.d.ts +54 -0
  45. package/dist/brain/brain-graph-walker.d.ts.map +1 -0
  46. package/dist/brain/brain-graph-walker.js +412 -0
  47. package/dist/brain/brain-graph-walker.js.map +1 -0
  48. package/dist/brain/brain-holiday-card.d.ts +50 -0
  49. package/dist/brain/brain-holiday-card.d.ts.map +1 -0
  50. package/dist/brain/brain-holiday-card.js +432 -0
  51. package/dist/brain/brain-holiday-card.js.map +1 -0
  52. package/dist/brain/brain-memes.d.ts +44 -0
  53. package/dist/brain/brain-memes.d.ts.map +1 -0
  54. package/dist/brain/brain-memes.js +438 -0
  55. package/dist/brain/brain-memes.js.map +1 -0
  56. package/dist/brain/brain-memory-tiers.d.ts +67 -0
  57. package/dist/brain/brain-memory-tiers.d.ts.map +1 -0
  58. package/dist/brain/brain-memory-tiers.js +292 -0
  59. package/dist/brain/brain-memory-tiers.js.map +1 -0
  60. package/dist/brain/brain-notebook.d.ts +68 -0
  61. package/dist/brain/brain-notebook.d.ts.map +1 -0
  62. package/dist/brain/brain-notebook.js +379 -0
  63. package/dist/brain/brain-notebook.js.map +1 -0
  64. package/dist/brain/brain-portability.js +3 -3
  65. package/dist/brain/brain-portability.js.map +1 -1
  66. package/dist/brain/brain-quantize.d.ts +62 -0
  67. package/dist/brain/brain-quantize.d.ts.map +1 -0
  68. package/dist/brain/brain-quantize.js +346 -0
  69. package/dist/brain/brain-quantize.js.map +1 -0
  70. package/dist/brain/brain-query-expander.d.ts +31 -0
  71. package/dist/brain/brain-query-expander.d.ts.map +1 -0
  72. package/dist/brain/brain-query-expander.js +417 -0
  73. package/dist/brain/brain-query-expander.js.map +1 -0
  74. package/dist/brain/brain-quest.d.ts +58 -0
  75. package/dist/brain/brain-quest.d.ts.map +1 -0
  76. package/dist/brain/brain-quest.js +541 -0
  77. package/dist/brain/brain-quest.js.map +1 -0
  78. package/dist/brain/brain-recall-cache.d.ts +73 -0
  79. package/dist/brain/brain-recall-cache.d.ts.map +1 -0
  80. package/dist/brain/brain-recall-cache.js +444 -0
  81. package/dist/brain/brain-recall-cache.js.map +1 -0
  82. package/dist/brain/brain-reflex.d.ts +55 -0
  83. package/dist/brain/brain-reflex.d.ts.map +1 -0
  84. package/dist/brain/brain-reflex.js +364 -0
  85. package/dist/brain/brain-reflex.js.map +1 -0
  86. package/dist/brain/brain-replay.d.ts +74 -0
  87. package/dist/brain/brain-replay.d.ts.map +1 -0
  88. package/dist/brain/brain-replay.js +336 -0
  89. package/dist/brain/brain-replay.js.map +1 -0
  90. package/dist/brain/brain-rerank.d.ts +39 -0
  91. package/dist/brain/brain-rerank.d.ts.map +1 -0
  92. package/dist/brain/brain-rerank.js +216 -0
  93. package/dist/brain/brain-rerank.js.map +1 -0
  94. package/dist/brain/brain-roast.d.ts +44 -0
  95. package/dist/brain/brain-roast.d.ts.map +1 -0
  96. package/dist/brain/brain-roast.js +566 -0
  97. package/dist/brain/brain-roast.js.map +1 -0
  98. package/dist/brain/brain-sonification.d.ts +57 -0
  99. package/dist/brain/brain-sonification.d.ts.map +1 -0
  100. package/dist/brain/brain-sonification.js +286 -0
  101. package/dist/brain/brain-sonification.js.map +1 -0
  102. package/dist/brain/brain-tarot.d.ts +49 -0
  103. package/dist/brain/brain-tarot.d.ts.map +1 -0
  104. package/dist/brain/brain-tarot.js +634 -0
  105. package/dist/brain/brain-tarot.js.map +1 -0
  106. package/dist/brain/brain-time-capsule.d.ts +80 -0
  107. package/dist/brain/brain-time-capsule.d.ts.map +1 -0
  108. package/dist/brain/brain-time-capsule.js +289 -0
  109. package/dist/brain/brain-time-capsule.js.map +1 -0
  110. package/dist/brain/brain-trophies.d.ts +60 -0
  111. package/dist/brain/brain-trophies.d.ts.map +1 -0
  112. package/dist/brain/brain-trophies.js +431 -0
  113. package/dist/brain/brain-trophies.js.map +1 -0
  114. package/dist/brain/brain-working-memory.d.ts +78 -0
  115. package/dist/brain/brain-working-memory.d.ts.map +1 -0
  116. package/dist/brain/brain-working-memory.js +367 -0
  117. package/dist/brain/brain-working-memory.js.map +1 -0
  118. package/dist/brain/confidence-gate.d.ts +69 -0
  119. package/dist/brain/confidence-gate.d.ts.map +1 -0
  120. package/dist/brain/confidence-gate.js +244 -0
  121. package/dist/brain/confidence-gate.js.map +1 -0
  122. package/dist/brain/constitution.d.ts +59 -0
  123. package/dist/brain/constitution.d.ts.map +1 -0
  124. package/dist/brain/constitution.js +315 -0
  125. package/dist/brain/constitution.js.map +1 -0
  126. package/dist/brain/context-continuity.d.ts +78 -0
  127. package/dist/brain/context-continuity.d.ts.map +1 -0
  128. package/dist/brain/context-continuity.js +341 -0
  129. package/dist/brain/context-continuity.js.map +1 -0
  130. package/dist/brain/embeddings-v2.d.ts +58 -0
  131. package/dist/brain/embeddings-v2.d.ts.map +1 -0
  132. package/dist/brain/embeddings-v2.js +344 -0
  133. package/dist/brain/embeddings-v2.js.map +1 -0
  134. package/dist/brain/global-brain.d.ts.map +1 -1
  135. package/dist/brain/global-brain.js +35 -9
  136. package/dist/brain/global-brain.js.map +1 -1
  137. package/dist/brain/hive-voice.d.ts +71 -0
  138. package/dist/brain/hive-voice.d.ts.map +1 -0
  139. package/dist/brain/hive-voice.js +352 -0
  140. package/dist/brain/hive-voice.js.map +1 -0
  141. package/dist/brain/live-brain.d.ts +119 -0
  142. package/dist/brain/live-brain.d.ts.map +1 -0
  143. package/dist/brain/live-brain.js +405 -0
  144. package/dist/brain/live-brain.js.map +1 -0
  145. package/dist/brain/markdown-export.d.ts +48 -0
  146. package/dist/brain/markdown-export.d.ts.map +1 -0
  147. package/dist/brain/markdown-export.js +382 -0
  148. package/dist/brain/markdown-export.js.map +1 -0
  149. package/dist/brain/mcp-server.d.ts +4 -0
  150. package/dist/brain/mcp-server.d.ts.map +1 -1
  151. package/dist/brain/mcp-server.js +81 -5
  152. package/dist/brain/mcp-server.js.map +1 -1
  153. package/dist/brain/memory-seeder.d.ts +78 -0
  154. package/dist/brain/memory-seeder.d.ts.map +1 -0
  155. package/dist/brain/memory-seeder.js +326 -0
  156. package/dist/brain/memory-seeder.js.map +1 -0
  157. package/dist/brain/multimodal-vision.d.ts +38 -0
  158. package/dist/brain/multimodal-vision.d.ts.map +1 -0
  159. package/dist/brain/multimodal-vision.js +257 -0
  160. package/dist/brain/multimodal-vision.js.map +1 -0
  161. package/dist/brain/orchestrator.js +1 -1
  162. package/dist/brain/otel-lite.d.ts +71 -0
  163. package/dist/brain/otel-lite.d.ts.map +1 -0
  164. package/dist/brain/otel-lite.js +232 -0
  165. package/dist/brain/otel-lite.js.map +1 -0
  166. package/dist/brain/token-economy.d.ts +2 -0
  167. package/dist/brain/token-economy.d.ts.map +1 -1
  168. package/dist/brain/token-economy.js +80 -24
  169. package/dist/brain/token-economy.js.map +1 -1
  170. package/dist/cli.js +1120 -32
  171. package/dist/cli.js.map +1 -1
  172. package/dist/dashboard/server.d.ts +5 -0
  173. package/dist/dashboard/server.d.ts.map +1 -1
  174. package/dist/dashboard/server.js +355 -2
  175. package/dist/dashboard/server.js.map +1 -1
  176. package/dist/dashboard/v6-dashboard-html.d.ts +1 -1
  177. package/dist/dashboard/v6-dashboard-html.d.ts.map +1 -1
  178. package/dist/dashboard/v6-dashboard-html.js +755 -85
  179. package/dist/dashboard/v6-dashboard-html.js.map +1 -1
  180. package/dist/index.d.ts +4 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +4 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/types.d.ts +17 -12
  185. package/dist/types.d.ts.map +1 -1
  186. package/docs/launch/README.md +61 -0
  187. package/docs/launch/RELEASE_CHECKLIST_v6.0.3.md +102 -0
  188. package/docs/launch/RELEASE_NOTES_v6.0.3.md +111 -0
  189. package/package.json +25 -13
  190. package/tools/export-resume-pack.mjs +56 -0
  191. package/tools/record-global-memory.mjs +72 -0
@@ -0,0 +1,292 @@
1
+ // src/brain/brain-memory-tiers.ts — Episodic vs semantic memory split
2
+ // v6.0.2 — Hive Mind Edition
3
+ //
4
+ // Human brains separate episodic memory (what happened, when, by whom) from
5
+ // semantic memory (abstract facts distilled from many episodes). Mixing them
6
+ // poisons recall — every "I solved this last Tuesday" buries the underlying
7
+ // pattern. This module enforces the split with two append-only stores and a
8
+ // promotion path from episodic → semantic when the same fact recurs.
9
+ //
10
+ // Storage layout (under ~/.shadow-brain/memory/):
11
+ // episodic/<project>.jsonl — raw events, daily-rotated
12
+ // episodic/<project>-YYYY-MM-DD.jsonl — rotated archives
13
+ // semantic/<project>.jsonl — curated, mergeable facts
14
+ //
15
+ // Promotion criteria (ALL must hold):
16
+ // 1. accessCount >= 3 — recalled repeatedly
17
+ // 2. importance >= 0.5 — non-trivial
18
+ // 3. linked to >= 2 other memories — connected to the graph
19
+ // 4. lastAccessed within 30 days — still warm
20
+ //
21
+ // New memories always land in episodic. Promotion is explicit (callable) or
22
+ // happens lazily during read() when criteria are met.
23
+ //
24
+ // Exposed: BrainMemoryTiers, getBrainMemoryTiers(), resetBrainMemoryTiersForTests()
25
+ import * as fs from 'fs';
26
+ import * as path from 'path';
27
+ import * as os from 'os';
28
+ const STORE_DIR = path.join(os.homedir(), '.shadow-brain', 'memory');
29
+ const EPISODIC_DIR = path.join(STORE_DIR, 'episodic');
30
+ const SEMANTIC_DIR = path.join(STORE_DIR, 'semantic');
31
+ const DEFAULT_PROJECT = 'default';
32
+ const PROMOTE_MIN_ACCESS = 3;
33
+ const PROMOTE_MIN_IMPORTANCE = 0.5;
34
+ const PROMOTE_MIN_LINKS = 2;
35
+ const PROMOTE_MAX_AGE_DAYS = 30;
36
+ const MS_PER_DAY = 24 * 60 * 60 * 1000;
37
+ export class BrainMemoryTiers {
38
+ constructor() {
39
+ this.initialized = false;
40
+ }
41
+ async init() {
42
+ if (this.initialized)
43
+ return;
44
+ fs.mkdirSync(EPISODIC_DIR, { recursive: true });
45
+ fs.mkdirSync(SEMANTIC_DIR, { recursive: true });
46
+ this.initialized = true;
47
+ }
48
+ /** Write a new memory. Defaults to episodic; module picks tier if not forced. */
49
+ async write(memory) {
50
+ await this.init();
51
+ const project = sanitizeProject(memory.project);
52
+ const now = new Date().toISOString();
53
+ const entry = {
54
+ id: memory.id ?? newId('mem'),
55
+ tier: memory.tier ?? 'episodic',
56
+ content: (memory.content || '').slice(0, 8000),
57
+ project,
58
+ createdAt: now,
59
+ lastAccessed: now,
60
+ accessCount: 0,
61
+ importance: clamp01(memory.importance ?? 0.5),
62
+ sourceAgent: memory.sourceAgent || 'unknown',
63
+ entityRefs: memory.entityRefs ?? [],
64
+ embedding: memory.embedding,
65
+ relatedTo: [],
66
+ };
67
+ this.rotateIfNeeded(project);
68
+ this.appendEntry(entry);
69
+ return entry;
70
+ }
71
+ /**
72
+ * Promote an episodic memory to semantic. If criteria are not met, throws
73
+ * unless the caller already forced it (re-issued with tier='semantic').
74
+ */
75
+ async promote(memoryId) {
76
+ await this.init();
77
+ const existing = this.findById(memoryId);
78
+ if (!existing)
79
+ throw new Error(`memory ${memoryId} not found`);
80
+ if (existing.tier === 'semantic')
81
+ return existing;
82
+ if (!this.meetsPromotionCriteria(existing)) {
83
+ throw new Error(`memory ${memoryId} does not meet promotion criteria`);
84
+ }
85
+ const promoted = {
86
+ ...existing,
87
+ id: newId('sem'),
88
+ tier: 'semantic',
89
+ derivedFromMemoryIds: [...(existing.derivedFromMemoryIds ?? []), existing.id],
90
+ lastAccessed: new Date().toISOString(),
91
+ };
92
+ this.appendEntry(promoted);
93
+ return promoted;
94
+ }
95
+ /** Read memories matching the options. Lazily promotes warm episodic on access. */
96
+ async read(opts = {}) {
97
+ await this.init();
98
+ const project = sanitizeProject(opts.project);
99
+ const wantTier = opts.tier ?? 'all';
100
+ const limit = opts.limit ?? 50;
101
+ const pool = [];
102
+ if (wantTier === 'episodic' || wantTier === 'all') {
103
+ pool.push(...this.loadTier('episodic', project));
104
+ }
105
+ if (wantTier === 'semantic' || wantTier === 'all') {
106
+ pool.push(...this.loadTier('semantic', project));
107
+ }
108
+ let results = pool;
109
+ if (opts.query) {
110
+ const q = opts.query.toLowerCase();
111
+ results = pool.filter(m => m.content.toLowerCase().includes(q));
112
+ }
113
+ // Mark access on the returned slice. (Cheap rewrite of last-accessed; we
114
+ // do NOT persist accessCount mutations here because the store is append-
115
+ // only — instead, we touch a sidecar.) For now, in-process mutation.
116
+ const now = new Date().toISOString();
117
+ const touched = results.slice(0, limit).map(m => ({
118
+ ...m,
119
+ lastAccessed: now,
120
+ accessCount: m.accessCount + 1,
121
+ }));
122
+ // Lazy promotion: if an episodic entry now meets criteria, queue a write.
123
+ for (const m of touched) {
124
+ if (m.tier === 'episodic' && this.meetsPromotionCriteria(m)) {
125
+ try {
126
+ await this.promote(m.id);
127
+ }
128
+ catch { /* skip */ }
129
+ }
130
+ }
131
+ // Sort by importance desc, then recency desc
132
+ touched.sort((a, b) => (b.importance - a.importance) || b.createdAt.localeCompare(a.createdAt));
133
+ return touched;
134
+ }
135
+ stats(project) {
136
+ if (!this.initialized) {
137
+ // best-effort sync init for stats
138
+ try {
139
+ fs.mkdirSync(EPISODIC_DIR, { recursive: true });
140
+ fs.mkdirSync(SEMANTIC_DIR, { recursive: true });
141
+ }
142
+ catch { /* skip */ }
143
+ }
144
+ const proj = sanitizeProject(project);
145
+ const ep = this.loadTier('episodic', proj);
146
+ const sem = this.loadTier('semantic', proj);
147
+ const epStats = bucket(ep);
148
+ const semStats = bucket(sem);
149
+ const totalEpisodic = ep.length + sem.length;
150
+ const promotionRate = totalEpisodic > 0 ? +(sem.length / totalEpisodic).toFixed(3) : 0;
151
+ return { episodic: epStats, semantic: semStats, promotionRate };
152
+ }
153
+ // ── Internals ─────────────────────────────────────────────────────────
154
+ meetsPromotionCriteria(m) {
155
+ if (m.accessCount < PROMOTE_MIN_ACCESS)
156
+ return false;
157
+ if (m.importance < PROMOTE_MIN_IMPORTANCE)
158
+ return false;
159
+ const linkCount = (m.entityRefs?.length ?? 0) + (m.relatedTo?.length ?? 0);
160
+ if (linkCount < PROMOTE_MIN_LINKS)
161
+ return false;
162
+ const ageMs = Date.now() - Date.parse(m.lastAccessed);
163
+ if (!Number.isFinite(ageMs) || ageMs > PROMOTE_MAX_AGE_DAYS * MS_PER_DAY)
164
+ return false;
165
+ return true;
166
+ }
167
+ findById(id) {
168
+ for (const tier of ['episodic', 'semantic']) {
169
+ const dir = tier === 'episodic' ? EPISODIC_DIR : SEMANTIC_DIR;
170
+ if (!fs.existsSync(dir))
171
+ continue;
172
+ for (const file of fs.readdirSync(dir)) {
173
+ if (!file.endsWith('.jsonl'))
174
+ continue;
175
+ try {
176
+ const lines = fs.readFileSync(path.join(dir, file), 'utf-8').split('\n');
177
+ for (const line of lines) {
178
+ if (!line.trim())
179
+ continue;
180
+ try {
181
+ const obj = JSON.parse(line);
182
+ if (obj.id === id)
183
+ return obj;
184
+ }
185
+ catch { /* skip line */ }
186
+ }
187
+ }
188
+ catch { /* skip file */ }
189
+ }
190
+ }
191
+ return null;
192
+ }
193
+ loadTier(tier, project) {
194
+ const dir = tier === 'episodic' ? EPISODIC_DIR : SEMANTIC_DIR;
195
+ if (!fs.existsSync(dir))
196
+ return [];
197
+ const out = [];
198
+ const prefix = `${project}`;
199
+ for (const file of fs.readdirSync(dir)) {
200
+ if (!file.endsWith('.jsonl'))
201
+ continue;
202
+ if (!file.startsWith(prefix))
203
+ continue;
204
+ try {
205
+ const lines = fs.readFileSync(path.join(dir, file), 'utf-8').split('\n');
206
+ for (const line of lines) {
207
+ if (!line.trim())
208
+ continue;
209
+ try {
210
+ const obj = JSON.parse(line);
211
+ if (obj.project !== project)
212
+ continue;
213
+ if (obj.tier !== tier)
214
+ continue;
215
+ out.push(obj);
216
+ }
217
+ catch { /* skip bad line */ }
218
+ }
219
+ }
220
+ catch { /* skip bad file */ }
221
+ }
222
+ return out;
223
+ }
224
+ appendEntry(entry) {
225
+ const dir = entry.tier === 'episodic' ? EPISODIC_DIR : SEMANTIC_DIR;
226
+ const file = path.join(dir, `${entry.project}.jsonl`);
227
+ try {
228
+ fs.appendFileSync(file, JSON.stringify(entry) + '\n');
229
+ }
230
+ catch { /* non-fatal */ }
231
+ }
232
+ rotateIfNeeded(project) {
233
+ // Daily rotation: if today's episodic file exceeds 2MB, archive it.
234
+ const file = path.join(EPISODIC_DIR, `${project}.jsonl`);
235
+ if (!fs.existsSync(file))
236
+ return;
237
+ try {
238
+ const sz = fs.statSync(file).size;
239
+ if (sz < 2 * 1024 * 1024)
240
+ return;
241
+ const stamp = new Date().toISOString().slice(0, 10);
242
+ const dest = path.join(EPISODIC_DIR, `${project}-${stamp}.jsonl`);
243
+ if (!fs.existsSync(dest))
244
+ fs.renameSync(file, dest);
245
+ }
246
+ catch { /* skip */ }
247
+ }
248
+ }
249
+ function sanitizeProject(p) {
250
+ if (!p)
251
+ return DEFAULT_PROJECT;
252
+ return p.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 80) || DEFAULT_PROJECT;
253
+ }
254
+ function clamp01(n) {
255
+ if (!Number.isFinite(n))
256
+ return 0;
257
+ return Math.max(0, Math.min(1, n));
258
+ }
259
+ function newId(prefix) {
260
+ const r = Math.random().toString(36).slice(2, 10);
261
+ const t = Date.now().toString(36);
262
+ return `${prefix}_${t}_${r}`;
263
+ }
264
+ function bucket(entries) {
265
+ if (entries.length === 0) {
266
+ return { count: 0, oldestAt: null, newestAt: null, avgImportance: 0 };
267
+ }
268
+ let oldest = entries[0].createdAt;
269
+ let newest = entries[0].createdAt;
270
+ let impSum = 0;
271
+ for (const e of entries) {
272
+ if (e.createdAt < oldest)
273
+ oldest = e.createdAt;
274
+ if (e.createdAt > newest)
275
+ newest = e.createdAt;
276
+ impSum += e.importance;
277
+ }
278
+ return {
279
+ count: entries.length,
280
+ oldestAt: oldest,
281
+ newestAt: newest,
282
+ avgImportance: +(impSum / entries.length).toFixed(3),
283
+ };
284
+ }
285
+ let _instance = null;
286
+ export function getBrainMemoryTiers() {
287
+ if (!_instance)
288
+ _instance = new BrainMemoryTiers();
289
+ return _instance;
290
+ }
291
+ export function resetBrainMemoryTiersForTests() { _instance = null; }
292
+ //# sourceMappingURL=brain-memory-tiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-memory-tiers.js","sourceRoot":"","sources":["../../src/brain/brain-memory-tiers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ export type QueryType = 'recall' | 'search' | 'dna' | 'replay' | 'archetype' | 'stats';
2
+ export type Cell = {
3
+ kind: 'markdown';
4
+ source: string;
5
+ } | {
6
+ kind: 'query';
7
+ queryType: QueryType;
8
+ source: string;
9
+ lastResult?: string;
10
+ lastRun?: string;
11
+ } | {
12
+ kind: 'code';
13
+ language: 'ts' | 'py' | 'sh';
14
+ source: string;
15
+ };
16
+ export interface NotebookMetadata {
17
+ project: string;
18
+ created: string;
19
+ modified: string;
20
+ brain_version: string;
21
+ }
22
+ export interface Notebook {
23
+ title: string;
24
+ cells: Cell[];
25
+ metadata: NotebookMetadata;
26
+ }
27
+ export interface NotebookRunResult {
28
+ cells: Array<{
29
+ index: number;
30
+ kind: Cell['kind'];
31
+ result?: string;
32
+ durationMs?: number;
33
+ error?: string;
34
+ }>;
35
+ totalDurationMs: number;
36
+ ranAt: string;
37
+ }
38
+ export declare class BrainNotebook {
39
+ /** Create a starter notebook on disk and return its path. */
40
+ createNotebook(project: string, title: string): Promise<{
41
+ path: string;
42
+ }>;
43
+ /** Parse a notebook from disk. */
44
+ parse(filePath: string): Promise<Notebook>;
45
+ /** Parse a notebook from a raw string (useful for tests). */
46
+ parseString(raw: string, source?: string): Notebook;
47
+ /** Run a single cell. Markdown cells are no-ops; code cells echo with a TODO. */
48
+ runCell(notebook: Notebook, cellIndex: number): Promise<{
49
+ result: string;
50
+ durationMs: number;
51
+ }>;
52
+ /** Run every query cell in order. */
53
+ runAll(notebook: Notebook): Promise<NotebookRunResult>;
54
+ /** Write the notebook back to disk with the latest run results inlined. */
55
+ save(notebook: Notebook, filePath: string): Promise<void>;
56
+ /** Render the notebook as a plain Markdown document. */
57
+ toMarkdown(notebook: Notebook): string;
58
+ private executeQuery;
59
+ private runRecall;
60
+ private runDna;
61
+ private runReplay;
62
+ private runArchetype;
63
+ private runStats;
64
+ private fallbackResult;
65
+ }
66
+ export declare function getBrainNotebook(): BrainNotebook;
67
+ export declare function resetBrainNotebookForTests(): void;
68
+ //# sourceMappingURL=brain-notebook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-notebook.d.ts","sourceRoot":"","sources":["../../src/brain/brain-notebook.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAEvF,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1G,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IACxB,6DAA6D;IACvD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB/E,kCAAkC;IAC5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhD,6DAA6D;IAC7D,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAY,GAAG,QAAQ;IA2GtD,iFAAiF;IAC3E,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBrG,qCAAqC;IAC/B,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmB5D,2EAA2E;IACrE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,wDAAwD;IACxD,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;YA2BxB,YAAY;YAyBZ,SAAS;YAiBT,MAAM;YAUN,SAAS;YAUT,YAAY;YAUZ,QAAQ;IAUtB,OAAO,CAAC,cAAc;CAGvB;AA6DD,wBAAgB,gBAAgB,IAAI,aAAa,CAGhD;AACD,wBAAgB,0BAA0B,IAAI,IAAI,CAAsB"}