bernard-agent 0.3.0 → 0.4.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 (81) hide show
  1. package/.env.example +10 -0
  2. package/README.md +54 -38
  3. package/dist/agent.d.ts +3 -0
  4. package/dist/agent.js +25 -4
  5. package/dist/agent.js.map +1 -1
  6. package/dist/config.js +17 -11
  7. package/dist/config.js.map +1 -1
  8. package/dist/context.d.ts +1 -0
  9. package/dist/context.js +29 -20
  10. package/dist/context.js.map +1 -1
  11. package/dist/cron/cli.d.ts +1 -0
  12. package/dist/cron/cli.js +53 -5
  13. package/dist/cron/cli.js.map +1 -1
  14. package/dist/cron/client.js.map +1 -1
  15. package/dist/cron/daemon.js +4 -1
  16. package/dist/cron/daemon.js.map +1 -1
  17. package/dist/cron/log-store.js +21 -13
  18. package/dist/cron/log-store.js.map +1 -1
  19. package/dist/cron/notify.js.map +1 -1
  20. package/dist/cron/runner.js +17 -10
  21. package/dist/cron/runner.js.map +1 -1
  22. package/dist/cron/scheduler.js +8 -7
  23. package/dist/cron/scheduler.js.map +1 -1
  24. package/dist/cron/store.js +19 -9
  25. package/dist/cron/store.js.map +1 -1
  26. package/dist/domains.js +37 -6
  27. package/dist/domains.js.map +1 -1
  28. package/dist/embeddings.js.map +1 -1
  29. package/dist/facts-cli.d.ts +7 -0
  30. package/dist/facts-cli.js +200 -0
  31. package/dist/facts-cli.js.map +1 -0
  32. package/dist/history.js.map +1 -1
  33. package/dist/index.js +33 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/logger.js +1 -2
  36. package/dist/logger.js.map +1 -1
  37. package/dist/mcp.js +10 -14
  38. package/dist/mcp.js.map +1 -1
  39. package/dist/memory-context.js +2 -1
  40. package/dist/memory-context.js.map +1 -1
  41. package/dist/memory.js +1 -3
  42. package/dist/memory.js.map +1 -1
  43. package/dist/output.d.ts +1 -1
  44. package/dist/output.js +15 -11
  45. package/dist/output.js.map +1 -1
  46. package/dist/rag-query.d.ts +31 -0
  47. package/dist/rag-query.js +97 -0
  48. package/dist/rag-query.js.map +1 -0
  49. package/dist/rag.d.ts +38 -1
  50. package/dist/rag.js +174 -26
  51. package/dist/rag.js.map +1 -1
  52. package/dist/repl.js +93 -37
  53. package/dist/repl.js.map +1 -1
  54. package/dist/setup.js +1 -1
  55. package/dist/setup.js.map +1 -1
  56. package/dist/theme.js +30 -5
  57. package/dist/theme.js.map +1 -1
  58. package/dist/tools/cron-logs.js +11 -4
  59. package/dist/tools/cron-logs.js.map +1 -1
  60. package/dist/tools/cron.d.ts +11 -0
  61. package/dist/tools/cron.js +60 -11
  62. package/dist/tools/cron.js.map +1 -1
  63. package/dist/tools/datetime.js.map +1 -1
  64. package/dist/tools/index.d.ts +11 -0
  65. package/dist/tools/index.js.map +1 -1
  66. package/dist/tools/mcp-url.js.map +1 -1
  67. package/dist/tools/mcp.js +19 -12
  68. package/dist/tools/mcp.js.map +1 -1
  69. package/dist/tools/memory.js +2 -2
  70. package/dist/tools/memory.js.map +1 -1
  71. package/dist/tools/shell.js +1 -1
  72. package/dist/tools/shell.js.map +1 -1
  73. package/dist/tools/subagent.js +9 -6
  74. package/dist/tools/subagent.js.map +1 -1
  75. package/dist/tools/time.js +8 -4
  76. package/dist/tools/time.js.map +1 -1
  77. package/dist/tools/web.js +18 -5
  78. package/dist/tools/web.js.map +1 -1
  79. package/dist/update.js +4 -2
  80. package/dist/update.js.map +1 -1
  81. package/package.json +10 -2
package/dist/rag.js CHANGED
@@ -42,6 +42,7 @@ const logger_js_1 = require("./logger.js");
42
42
  const domains_js_1 = require("./domains.js");
43
43
  const RAG_DIR = path.join(os.homedir(), '.bernard', 'rag');
44
44
  const MEMORIES_FILE = path.join(RAG_DIR, 'memories.json');
45
+ const LAST_SESSION_FILE = path.join(RAG_DIR, 'last-session.txt');
45
46
  const DEFAULT_TOP_K_PER_DOMAIN = 3;
46
47
  const DEFAULT_MAX_RESULTS = 9;
47
48
  const DEFAULT_SIMILARITY_THRESHOLD = 0.35;
@@ -49,19 +50,24 @@ const DEFAULT_MAX_MEMORIES = 5000;
49
50
  const DEDUP_THRESHOLD = 0.92;
50
51
  const PRUNE_HALF_LIFE_DAYS = 90;
51
52
  const STALE_TEMP_MAX_AGE_MS = 60 * 60 * 1000; // 1 hour
53
+ const DEFAULT_RAG_TTL_DAYS = 90;
52
54
  class RAGStore {
53
55
  memories = [];
54
56
  topKPerDomain;
55
57
  maxResults;
56
58
  similarityThreshold;
57
59
  maxMemories;
60
+ ragTtlDays;
58
61
  constructor(config) {
59
62
  this.topKPerDomain = config?.topKPerDomain ?? DEFAULT_TOP_K_PER_DOMAIN;
60
63
  this.maxResults = config?.maxResults ?? DEFAULT_MAX_RESULTS;
61
64
  this.similarityThreshold = config?.similarityThreshold ?? DEFAULT_SIMILARITY_THRESHOLD;
62
65
  this.maxMemories = config?.maxMemories ?? DEFAULT_MAX_MEMORIES;
66
+ this.ragTtlDays = config?.ragTtlDays ?? DEFAULT_RAG_TTL_DAYS;
63
67
  fs.mkdirSync(RAG_DIR, { recursive: true });
64
68
  this.load();
69
+ this.saveSessionDate();
70
+ this.pruneExpired();
65
71
  RAGStore.cleanupStaleTemp();
66
72
  }
67
73
  /** Delete .pending-*.json temp files older than 1 hour (handles crashed workers). */
@@ -103,7 +109,7 @@ class RAGStore {
103
109
  }
104
110
  let embeddings;
105
111
  try {
106
- embeddings = await provider.embed(facts);
112
+ embeddings = (await provider.embed(facts)).map((e) => Array.from(e));
107
113
  }
108
114
  catch (err) {
109
115
  (0, logger_js_1.debugLog)('rag:addFacts', `Embedding failed: ${err instanceof Error ? err.message : String(err)}`);
@@ -128,6 +134,7 @@ class RAGStore {
128
134
  domain,
129
135
  createdAt: now,
130
136
  accessCount: 0,
137
+ expiresAt: new Date(Date.now() + this.ragTtlDays * 86400000).toISOString(),
131
138
  });
132
139
  added++;
133
140
  }
@@ -139,26 +146,10 @@ class RAGStore {
139
146
  return added;
140
147
  }
141
148
  /**
142
- * Search for memories relevant to the query.
143
- * Per-domain top-k: takes up to topKPerDomain results per domain,
144
- * then merges and caps at maxResults total.
149
+ * Score, group by domain (top-k per domain), and cap at maxResults.
150
+ * Shared by search() and searchWithIds().
145
151
  */
146
- async search(query) {
147
- if (this.memories.length === 0)
148
- return [];
149
- const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
150
- if (!provider)
151
- return [];
152
- let queryEmbedding;
153
- try {
154
- const embeddings = await provider.embed([query]);
155
- queryEmbedding = embeddings[0];
156
- }
157
- catch (err) {
158
- (0, logger_js_1.debugLog)('rag:search', `Query embedding failed: ${err instanceof Error ? err.message : String(err)}`);
159
- return [];
160
- }
161
- // Score all memories
152
+ scoreAndRank(queryEmbedding) {
162
153
  const scored = this.memories
163
154
  .map((m) => ({
164
155
  memory: m,
@@ -166,7 +157,6 @@ class RAGStore {
166
157
  }))
167
158
  .filter((s) => s.similarity >= this.similarityThreshold)
168
159
  .sort((a, b) => b.similarity - a.similarity);
169
- // Group by domain, take top-k per domain
170
160
  const byDomain = new Map();
171
161
  for (const entry of scored) {
172
162
  const d = entry.memory.domain;
@@ -177,15 +167,48 @@ class RAGStore {
177
167
  group.push(entry);
178
168
  }
179
169
  }
180
- // Merge all domain groups, sort by similarity, cap at maxResults
181
170
  const merged = Array.from(byDomain.values()).flat();
182
171
  merged.sort((a, b) => b.similarity - a.similarity);
183
- const capped = merged.slice(0, this.maxResults);
184
- // Update access metadata
172
+ return merged.slice(0, this.maxResults);
173
+ }
174
+ /** Embed a query string, returning the embedding vector or null on failure. */
175
+ async embedQuery(query, logLabel) {
176
+ const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
177
+ if (!provider)
178
+ return null;
179
+ try {
180
+ return Array.from((await provider.embed([query]))[0]);
181
+ }
182
+ catch (err) {
183
+ (0, logger_js_1.debugLog)(logLabel, `Query embedding failed: ${err instanceof Error ? err.message : String(err)}`);
184
+ return null;
185
+ }
186
+ }
187
+ /**
188
+ * Search for memories relevant to the query.
189
+ * Per-domain top-k: takes up to topKPerDomain results per domain,
190
+ * then merges and caps at maxResults total.
191
+ */
192
+ async search(query) {
193
+ if (this.memories.length === 0)
194
+ return [];
195
+ const queryEmbedding = await this.embedQuery(query, 'rag:search');
196
+ if (!queryEmbedding)
197
+ return [];
198
+ const capped = this.scoreAndRank(queryEmbedding);
199
+ (0, logger_js_1.debugLog)('rag:search', { query: query.slice(0, 100), returned: capped.length });
200
+ // Update access metadata and extend expiration
185
201
  const now = new Date().toISOString();
202
+ const nowMs = Date.now();
186
203
  for (const { memory } of capped) {
187
204
  memory.accessCount++;
188
205
  memory.lastAccessed = now;
206
+ // Extend expiresAt: base of 7d + log scaling by access count, capped at half TTL
207
+ const extensionDays = Math.min(this.ragTtlDays * 0.5, 7 + Math.log2(memory.accessCount + 1) * 3);
208
+ const newExpiry = nowMs + extensionDays * 86400000;
209
+ if (!memory.expiresAt || newExpiry > new Date(memory.expiresAt).getTime()) {
210
+ memory.expiresAt = new Date(newExpiry).toISOString();
211
+ }
189
212
  }
190
213
  if (capped.length > 0) {
191
214
  this.persist();
@@ -198,9 +221,13 @@ class RAGStore {
198
221
  }
199
222
  /** List all facts as plain text lines. */
200
223
  listFacts() {
224
+ const now = Date.now();
201
225
  return this.memories.map((m) => {
202
226
  const date = m.createdAt.slice(0, 10);
203
- return `[${date}] [${m.domain}] (accessed ${m.accessCount}x) ${m.fact}`;
227
+ const daysLeft = m.expiresAt
228
+ ? Math.max(0, Math.ceil((new Date(m.expiresAt).getTime() - now) / 86400000))
229
+ : '?';
230
+ return `[${date}] [${m.domain}] (accessed ${m.accessCount}x, expires in ${daysLeft}d) ${m.fact}`;
204
231
  });
205
232
  }
206
233
  /** Clear all memories. */
@@ -220,12 +247,68 @@ class RAGStore {
220
247
  }
221
248
  return counts;
222
249
  }
250
+ /**
251
+ * Search for memories relevant to the query, returning rich metadata.
252
+ * Same scoring/grouping/capping as search() but does NOT update access metadata.
253
+ */
254
+ async searchWithIds(query) {
255
+ if (this.memories.length === 0)
256
+ return [];
257
+ const queryEmbedding = await this.embedQuery(query, 'rag:searchWithIds');
258
+ if (!queryEmbedding)
259
+ return [];
260
+ const capped = this.scoreAndRank(queryEmbedding);
261
+ return capped.map((s) => ({
262
+ id: s.memory.id,
263
+ fact: s.memory.fact,
264
+ similarity: s.similarity,
265
+ domain: s.memory.domain,
266
+ createdAt: s.memory.createdAt,
267
+ accessCount: s.memory.accessCount,
268
+ }));
269
+ }
270
+ /** Return all memories as RAGSearchResultWithId (similarity=1.0 placeholder). */
271
+ listMemories() {
272
+ return this.memories.map((m) => ({
273
+ id: m.id,
274
+ fact: m.fact,
275
+ similarity: 1.0,
276
+ domain: m.domain,
277
+ createdAt: m.createdAt,
278
+ accessCount: m.accessCount,
279
+ }));
280
+ }
281
+ /** Delete memories by ID. Returns the number of memories deleted. */
282
+ deleteByIds(ids) {
283
+ const idSet = new Set(ids);
284
+ const before = this.memories.length;
285
+ this.memories = this.memories.filter((m) => !idSet.has(m.id));
286
+ const deleted = before - this.memories.length;
287
+ if (deleted > 0) {
288
+ this.persist();
289
+ }
290
+ return deleted;
291
+ }
292
+ /** Remove facts whose expiresAt has passed. Returns the number removed. */
293
+ pruneExpired() {
294
+ const now = Date.now();
295
+ const before = this.memories.length;
296
+ this.memories = this.memories.filter((m) => !m.expiresAt || new Date(m.expiresAt).getTime() > now);
297
+ const expired = before - this.memories.length;
298
+ if (expired > 0) {
299
+ (0, logger_js_1.debugLog)('rag:pruneExpired', { expired });
300
+ this.persist();
301
+ }
302
+ return expired;
303
+ }
223
304
  /**
224
305
  * Prune memories if over the cap.
306
+ * First removes expired facts, then applies capacity-based scoring.
225
307
  * Score = recency decay (half-life 90 days) + log2(accessCount + 1)
226
308
  * Keeps top N by score.
227
309
  */
228
310
  prune() {
311
+ this.pruneExpired();
229
312
  if (this.memories.length <= this.maxMemories)
230
313
  return;
231
314
  const now = Date.now();
@@ -240,7 +323,7 @@ class RAGStore {
240
323
  this.memories = scored.slice(0, this.maxMemories).map((s) => s.memory);
241
324
  (0, logger_js_1.debugLog)('rag:prune', { kept: this.memories.length });
242
325
  }
243
- /** Load memories from disk. Backfills 'general' domain for legacy entries. */
326
+ /** Load memories from disk. Backfills domain, expiresAt, and compensates for idle days. */
244
327
  load() {
245
328
  try {
246
329
  if (!fs.existsSync(MEMORIES_FILE))
@@ -251,12 +334,77 @@ class RAGStore {
251
334
  this.memories = parsed.map((m) => ({
252
335
  ...m,
253
336
  domain: m.domain ?? domains_js_1.DEFAULT_DOMAIN,
337
+ embedding: Array.isArray(m.embedding) ? m.embedding : Object.values(m.embedding),
254
338
  }));
255
339
  }
256
340
  }
257
341
  catch (err) {
258
342
  (0, logger_js_1.debugLog)('rag:load', `Failed to load memories: ${err instanceof Error ? err.message : String(err)}`);
259
343
  this.memories = [];
344
+ return;
345
+ }
346
+ if (this.memories.length === 0)
347
+ return;
348
+ let dirty = false;
349
+ // Backfill expiresAt for legacy facts without one (must run before idle-day shift)
350
+ const now = Date.now();
351
+ const ttlMs = this.ragTtlDays * 86400000;
352
+ const gracePeriodMs = 14 * 86400000;
353
+ for (const m of this.memories) {
354
+ if (!m.expiresAt) {
355
+ const ageMs = now - new Date(m.createdAt).getTime();
356
+ const remainingMs = ttlMs - ageMs;
357
+ m.expiresAt = new Date(now + Math.max(remainingMs, gracePeriodMs)).toISOString();
358
+ dirty = true;
359
+ }
360
+ }
361
+ // Compensate for idle days — TTL only counts days Bernard was used
362
+ const idleDays = this.getIdleDays();
363
+ if (idleDays > 0) {
364
+ const shiftMs = idleDays * 86400000;
365
+ for (const m of this.memories) {
366
+ if (m.expiresAt) {
367
+ m.expiresAt = new Date(new Date(m.expiresAt).getTime() + shiftMs).toISOString();
368
+ }
369
+ }
370
+ (0, logger_js_1.debugLog)('rag:load', { idleDaysCompensated: idleDays });
371
+ dirty = true;
372
+ }
373
+ if (dirty) {
374
+ this.persist();
375
+ }
376
+ }
377
+ /**
378
+ * Compute the number of idle calendar days since the last session.
379
+ * Returns 0 if no previous session recorded or if used today/yesterday.
380
+ */
381
+ getIdleDays() {
382
+ try {
383
+ if (!fs.existsSync(LAST_SESSION_FILE))
384
+ return 0;
385
+ const lastDateStr = fs.readFileSync(LAST_SESSION_FILE, 'utf-8').trim();
386
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(lastDateStr))
387
+ return 0;
388
+ const todayStr = new Date().toISOString().slice(0, 10);
389
+ const lastDate = new Date(lastDateStr + 'T00:00:00Z');
390
+ const today = new Date(todayStr + 'T00:00:00Z');
391
+ const daysBetween = Math.round((today.getTime() - lastDate.getTime()) / 86400000);
392
+ // 0 = same day, 1 = consecutive days (normal), 2+ = idle gap
393
+ return Math.max(0, daysBetween - 1);
394
+ }
395
+ catch {
396
+ return 0;
397
+ }
398
+ }
399
+ /** Write today's date as the last session date. */
400
+ saveSessionDate() {
401
+ try {
402
+ const todayStr = new Date().toISOString().slice(0, 10);
403
+ fs.writeFileSync(LAST_SESSION_FILE, todayStr, 'utf-8');
404
+ }
405
+ catch {
406
+ // Non-critical — just log
407
+ (0, logger_js_1.debugLog)('rag:saveSessionDate', 'Failed to save session date');
260
408
  }
261
409
  }
262
410
  /** Persist memories to disk atomically (write to tmp, then rename). */
package/dist/rag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rag.js","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rag.js","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":"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"}