bernard-agent 0.3.1 → 0.5.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 (138) hide show
  1. package/README.md +109 -38
  2. package/THIRD-PARTY-NOTICES +212 -0
  3. package/dist/agent.d.ts +32 -3
  4. package/dist/agent.js +63 -12
  5. package/dist/agent.js.map +1 -1
  6. package/dist/config.d.ts +67 -0
  7. package/dist/config.js +99 -31
  8. package/dist/config.js.map +1 -1
  9. package/dist/context.d.ts +7 -0
  10. package/dist/context.js +32 -20
  11. package/dist/context.js.map +1 -1
  12. package/dist/cron/cli.d.ts +7 -0
  13. package/dist/cron/cli.js +61 -5
  14. package/dist/cron/cli.js.map +1 -1
  15. package/dist/cron/client.d.ts +9 -0
  16. package/dist/cron/client.js +9 -0
  17. package/dist/cron/client.js.map +1 -1
  18. package/dist/cron/daemon.js +12 -1
  19. package/dist/cron/daemon.js.map +1 -1
  20. package/dist/cron/log-store.d.ts +18 -0
  21. package/dist/cron/log-store.js +41 -18
  22. package/dist/cron/log-store.js.map +1 -1
  23. package/dist/cron/notify.d.ts +7 -0
  24. package/dist/cron/notify.js +16 -0
  25. package/dist/cron/notify.js.map +1 -1
  26. package/dist/cron/runner.d.ts +11 -0
  27. package/dist/cron/runner.js +77 -20
  28. package/dist/cron/runner.js.map +1 -1
  29. package/dist/cron/scheduler.d.ts +16 -0
  30. package/dist/cron/scheduler.js +24 -7
  31. package/dist/cron/scheduler.js.map +1 -1
  32. package/dist/cron/store.d.ts +32 -0
  33. package/dist/cron/store.js +64 -27
  34. package/dist/cron/store.js.map +1 -1
  35. package/dist/cron/types.d.ts +19 -0
  36. package/dist/domains.d.ts +15 -0
  37. package/dist/domains.js +20 -1
  38. package/dist/domains.js.map +1 -1
  39. package/dist/embeddings.d.ts +7 -1
  40. package/dist/embeddings.js +43 -1
  41. package/dist/embeddings.js.map +1 -1
  42. package/dist/facts-cli.d.ts +14 -0
  43. package/dist/facts-cli.js +55 -1
  44. package/dist/facts-cli.js.map +1 -1
  45. package/dist/history.d.ts +8 -0
  46. package/dist/history.js +14 -9
  47. package/dist/history.js.map +1 -1
  48. package/dist/index.d.ts +5 -0
  49. package/dist/index.js +36 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/logger.d.ts +6 -0
  52. package/dist/logger.js +6 -0
  53. package/dist/logger.js.map +1 -1
  54. package/dist/mcp.d.ts +87 -0
  55. package/dist/mcp.js +116 -39
  56. package/dist/mcp.js.map +1 -1
  57. package/dist/memory-context.d.ts +4 -0
  58. package/dist/memory-context.js +4 -1
  59. package/dist/memory-context.js.map +1 -1
  60. package/dist/memory.d.ts +17 -0
  61. package/dist/memory.js +24 -10
  62. package/dist/memory.js.map +1 -1
  63. package/dist/migrate.d.ts +13 -0
  64. package/dist/migrate.js +209 -0
  65. package/dist/migrate.js.map +1 -0
  66. package/dist/output.d.ts +46 -1
  67. package/dist/output.js +72 -11
  68. package/dist/output.js.map +1 -1
  69. package/dist/paths.d.ts +23 -0
  70. package/dist/paths.js +82 -0
  71. package/dist/paths.js.map +1 -0
  72. package/dist/providers/index.d.ts +7 -0
  73. package/dist/providers/index.js +7 -0
  74. package/dist/providers/index.js.map +1 -1
  75. package/dist/providers/types.d.ts +4 -0
  76. package/dist/rag-query.d.ts +20 -0
  77. package/dist/rag-query.js +70 -6
  78. package/dist/rag-query.js.map +1 -1
  79. package/dist/rag-worker.js.map +1 -1
  80. package/dist/rag.d.ts +41 -1
  81. package/dist/rag.js +125 -21
  82. package/dist/rag.js.map +1 -1
  83. package/dist/repl.d.ts +6 -0
  84. package/dist/repl.js +211 -44
  85. package/dist/repl.js.map +1 -1
  86. package/dist/routines.d.ts +49 -0
  87. package/dist/routines.js +172 -0
  88. package/dist/routines.js.map +1 -0
  89. package/dist/setup.d.ts +5 -0
  90. package/dist/setup.js +8 -2
  91. package/dist/setup.js.map +1 -1
  92. package/dist/theme.d.ts +41 -0
  93. package/dist/theme.js +55 -5
  94. package/dist/theme.js.map +1 -1
  95. package/dist/tools/cron-logs.d.ts +6 -0
  96. package/dist/tools/cron-logs.js +17 -4
  97. package/dist/tools/cron-logs.js.map +1 -1
  98. package/dist/tools/cron.d.ts +18 -0
  99. package/dist/tools/cron.js +67 -11
  100. package/dist/tools/cron.js.map +1 -1
  101. package/dist/tools/datetime.d.ts +1 -0
  102. package/dist/tools/datetime.js +1 -0
  103. package/dist/tools/datetime.js.map +1 -1
  104. package/dist/tools/index.d.ts +10 -325
  105. package/dist/tools/index.js +11 -1
  106. package/dist/tools/index.js.map +1 -1
  107. package/dist/tools/mcp-url.d.ts +6 -0
  108. package/dist/tools/mcp-url.js +6 -0
  109. package/dist/tools/mcp-url.js.map +1 -1
  110. package/dist/tools/mcp.d.ts +6 -0
  111. package/dist/tools/mcp.js +25 -12
  112. package/dist/tools/mcp.js.map +1 -1
  113. package/dist/tools/memory.d.ts +14 -0
  114. package/dist/tools/memory.js +18 -3
  115. package/dist/tools/memory.js.map +1 -1
  116. package/dist/tools/routine.d.ts +35 -0
  117. package/dist/tools/routine.js +93 -0
  118. package/dist/tools/routine.js.map +1 -0
  119. package/dist/tools/shell.d.ts +15 -1
  120. package/dist/tools/shell.js +16 -2
  121. package/dist/tools/shell.js.map +1 -1
  122. package/dist/tools/subagent.d.ts +18 -1
  123. package/dist/tools/subagent.js +27 -7
  124. package/dist/tools/subagent.js.map +1 -1
  125. package/dist/tools/time.d.ts +19 -0
  126. package/dist/tools/time.js +27 -4
  127. package/dist/tools/time.js.map +1 -1
  128. package/dist/tools/types.d.ts +6 -0
  129. package/dist/tools/wait.d.ts +3 -0
  130. package/dist/tools/wait.js +3 -0
  131. package/dist/tools/wait.js.map +1 -1
  132. package/dist/tools/web.d.ts +6 -0
  133. package/dist/tools/web.js +29 -6
  134. package/dist/tools/web.js.map +1 -1
  135. package/dist/update.d.ts +5 -0
  136. package/dist/update.js +8 -7
  137. package/dist/update.js.map +1 -1
  138. package/package.json +11 -2
package/dist/mcp.js CHANGED
@@ -41,12 +41,18 @@ exports.addMCPUrlServer = addMCPUrlServer;
41
41
  exports.removeMCPServer = removeMCPServer;
42
42
  const fs = __importStar(require("node:fs"));
43
43
  const path = __importStar(require("node:path"));
44
- const os = __importStar(require("node:os"));
45
44
  const mcp_1 = require("@ai-sdk/mcp");
46
45
  const mcp_stdio_1 = require("@ai-sdk/mcp/mcp-stdio");
47
46
  const ai_1 = require("ai");
48
47
  const output_js_1 = require("./output.js");
49
- const CONFIG_PATH = path.join(os.homedir(), '.bernard', 'mcp.json');
48
+ const paths_js_1 = require("./paths.js");
49
+ /**
50
+ * Manages the lifecycle of MCP (Model Context Protocol) server connections.
51
+ *
52
+ * Reads server definitions from the MCP config file, establishes connections
53
+ * (stdio or URL-based), aggregates tools from all servers, and handles
54
+ * automatic reconnection with retry when a tool call fails.
55
+ */
50
56
  class MCPManager {
51
57
  clients = new Map();
52
58
  serverStatuses = [];
@@ -55,18 +61,27 @@ class MCPManager {
55
61
  toolServerMap = new Map();
56
62
  // Per-server reconnection lock to coalesce concurrent reconnect attempts
57
63
  reconnectPromises = new Map();
64
+ /**
65
+ * Reads and parses the MCP configuration file.
66
+ * @returns The parsed config, or an empty config if the file does not exist.
67
+ * @throws {Error} If the file exists but contains invalid JSON.
68
+ */
58
69
  loadConfig() {
59
- if (!fs.existsSync(CONFIG_PATH)) {
70
+ if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
60
71
  return { mcpServers: {} };
61
72
  }
62
- const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
73
+ const raw = fs.readFileSync(paths_js_1.MCP_CONFIG_PATH, 'utf-8');
63
74
  try {
64
75
  return JSON.parse(raw);
65
76
  }
66
77
  catch {
67
- throw new Error(`Invalid JSON in ${CONFIG_PATH}`);
78
+ throw new Error(`Invalid JSON in ${paths_js_1.MCP_CONFIG_PATH}`);
68
79
  }
69
80
  }
81
+ /**
82
+ * Creates an MCP client for the given server configuration.
83
+ * @internal
84
+ */
70
85
  async createClientForConfig(serverConfig) {
71
86
  if ('url' in serverConfig) {
72
87
  return (0, mcp_1.createMCPClient)({
@@ -88,6 +103,13 @@ class MCPManager {
88
103
  return (0, mcp_1.createMCPClient)({ transport });
89
104
  }
90
105
  }
106
+ /**
107
+ * Connects to all MCP servers defined in the config file.
108
+ *
109
+ * Connections are established concurrently via `Promise.allSettled`.
110
+ * Servers that fail to connect are recorded with an error status and
111
+ * logged, but do not prevent other servers from connecting.
112
+ */
91
113
  async connect() {
92
114
  let config;
93
115
  try {
@@ -140,9 +162,7 @@ class MCPManager {
140
162
  }
141
163
  }
142
164
  else {
143
- const message = result.reason instanceof Error
144
- ? result.reason.message
145
- : String(result.reason);
165
+ const message = result.reason instanceof Error ? result.reason.message : String(result.reason);
146
166
  this.serverStatuses.push({
147
167
  name,
148
168
  connected: false,
@@ -153,6 +173,14 @@ class MCPManager {
153
173
  }
154
174
  }
155
175
  }
176
+ /**
177
+ * Reconnects a single MCP server by name, closing the old client first.
178
+ *
179
+ * Concurrent calls for the same server are coalesced so only one
180
+ * reconnection attempt runs at a time.
181
+ * @param name - The server key as defined in the config file.
182
+ * @returns `true` if the reconnection succeeded, `false` otherwise.
183
+ */
156
184
  async reconnectServer(name) {
157
185
  // Coalesce concurrent reconnect attempts for the same server —
158
186
  // if a reconnect is already in progress, return its promise instead
@@ -169,6 +197,10 @@ class MCPManager {
169
197
  this.reconnectPromises.delete(name);
170
198
  }
171
199
  }
200
+ /**
201
+ * Performs the actual reconnection logic for a single server.
202
+ * @internal
203
+ */
172
204
  async doReconnectServer(name) {
173
205
  const config = this.serverConfigs.get(name);
174
206
  if (!config)
@@ -179,7 +211,9 @@ class MCPManager {
179
211
  try {
180
212
  await existingClient.close();
181
213
  }
182
- catch { /* ignore */ }
214
+ catch {
215
+ /* ignore */
216
+ }
183
217
  this.clients.delete(name);
184
218
  }
185
219
  try {
@@ -201,7 +235,7 @@ class MCPManager {
201
235
  this.toolServerMap.set(toolName, name);
202
236
  }
203
237
  // Update server status
204
- const statusIndex = this.serverStatuses.findIndex(s => s.name === name);
238
+ const statusIndex = this.serverStatuses.findIndex((s) => s.name === name);
205
239
  const newStatus = { name, connected: true, toolCount: toolNames.length };
206
240
  if (statusIndex >= 0) {
207
241
  this.serverStatuses[statusIndex] = newStatus;
@@ -214,7 +248,7 @@ class MCPManager {
214
248
  catch (err) {
215
249
  const message = err instanceof Error ? err.message : String(err);
216
250
  (0, output_js_1.printError)(`MCP reconnection to "${name}" failed: ${message}`);
217
- const statusIndex = this.serverStatuses.findIndex(s => s.name === name);
251
+ const statusIndex = this.serverStatuses.findIndex((s) => s.name === name);
218
252
  const newStatus = { name, connected: false, toolCount: 0, error: message };
219
253
  if (statusIndex >= 0) {
220
254
  this.serverStatuses[statusIndex] = newStatus;
@@ -225,9 +259,13 @@ class MCPManager {
225
259
  return false;
226
260
  }
227
261
  }
262
+ /**
263
+ * Converts a dynamic MCP tool to the function-tool shape expected by AI SDK v4.
264
+ * @internal
265
+ */
228
266
  convertTool(name, tool) {
229
267
  if (tool.type === 'dynamic') {
230
- const { type, inputSchema, ...rest } = tool;
268
+ const { type: _type, inputSchema, ...rest } = tool;
231
269
  return {
232
270
  ...rest,
233
271
  parameters: (0, ai_1.jsonSchema)(inputSchema.jsonSchema),
@@ -235,6 +273,12 @@ class MCPManager {
235
273
  }
236
274
  return tool;
237
275
  }
276
+ /**
277
+ * Returns all MCP tools, converted for AI SDK v4 compatibility.
278
+ *
279
+ * Each tool's `execute` method is wrapped with automatic reconnect-and-retry:
280
+ * if a call fails, the owning server is reconnected and the call retried once.
281
+ */
238
282
  getTools() {
239
283
  // Convert dynamic MCP tools to function tools compatible with AI SDK v4.
240
284
  // @ai-sdk/mcp@1.x returns tools with type:'dynamic' and inputSchema from
@@ -271,32 +315,38 @@ class MCPManager {
271
315
  }
272
316
  return converted;
273
317
  }
318
+ /** Returns the current connection status for every configured server. */
274
319
  getServerStatuses() {
275
320
  return this.serverStatuses;
276
321
  }
322
+ /** Returns the names of all servers that are currently connected. */
277
323
  getConnectedServerNames() {
278
- return this.serverStatuses
279
- .filter(s => s.connected)
280
- .map(s => s.name);
324
+ return this.serverStatuses.filter((s) => s.connected).map((s) => s.name);
281
325
  }
326
+ /** Gracefully closes all active MCP client connections. */
282
327
  async close() {
283
- const closePromises = Array.from(this.clients.values()).map(client => client.close().catch(() => { }));
328
+ const closePromises = Array.from(this.clients.values()).map((client) => client.close().catch(() => { }));
284
329
  await Promise.allSettled(closePromises);
285
330
  this.clients.clear();
286
331
  }
287
332
  }
288
333
  exports.MCPManager = MCPManager;
334
+ /**
335
+ * Lists all MCP servers in the config file with their connection details.
336
+ * @returns An array of server summaries. Returns an empty array if no config file exists.
337
+ * @throws {Error} If the config file contains invalid JSON.
338
+ */
289
339
  function listMCPServers() {
290
- if (!fs.existsSync(CONFIG_PATH)) {
340
+ if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
291
341
  return [];
292
342
  }
293
- const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
343
+ const raw = fs.readFileSync(paths_js_1.MCP_CONFIG_PATH, 'utf-8');
294
344
  let config;
295
345
  try {
296
346
  config = JSON.parse(raw);
297
347
  }
298
348
  catch {
299
- throw new Error(`Invalid JSON in ${CONFIG_PATH}`);
349
+ throw new Error(`Invalid JSON in ${paths_js_1.MCP_CONFIG_PATH}`);
300
350
  }
301
351
  return Object.entries(config.mcpServers).map(([key, server]) => {
302
352
  if ('url' in server) {
@@ -305,20 +355,35 @@ function listMCPServers() {
305
355
  return { key, command: server.command, args: server.args ?? [] };
306
356
  });
307
357
  }
358
+ /**
359
+ * Retrieves the configuration for a single MCP server by key.
360
+ * @param key - The server key as defined in the config file.
361
+ * @returns The server config, or `undefined` if the key or config file does not exist.
362
+ * @throws {Error} If the config file contains invalid JSON.
363
+ */
308
364
  function getMCPServer(key) {
309
- if (!fs.existsSync(CONFIG_PATH)) {
365
+ if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
310
366
  return undefined;
311
367
  }
312
- const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
368
+ const raw = fs.readFileSync(paths_js_1.MCP_CONFIG_PATH, 'utf-8');
313
369
  let config;
314
370
  try {
315
371
  config = JSON.parse(raw);
316
372
  }
317
373
  catch {
318
- throw new Error(`Invalid JSON in ${CONFIG_PATH}`);
374
+ throw new Error(`Invalid JSON in ${paths_js_1.MCP_CONFIG_PATH}`);
319
375
  }
320
376
  return config.mcpServers[key];
321
377
  }
378
+ /**
379
+ * Adds a stdio-based MCP server entry to the MCP config file.
380
+ * @param key - Unique, whitespace-free identifier for the server.
381
+ * @param command - The command to spawn (e.g. `"npx"`).
382
+ * @param args - Optional command-line arguments.
383
+ * @param env - Optional extra environment variables merged with `process.env`.
384
+ * @throws {Error} If the key is empty/contains whitespace, the command is empty,
385
+ * the key already exists, or the config file contains invalid JSON.
386
+ */
322
387
  function addMCPServer(key, command, args, env) {
323
388
  if (!key || /\s/.test(key)) {
324
389
  throw new Error('Server key must be non-empty and contain no whitespace.');
@@ -326,18 +391,18 @@ function addMCPServer(key, command, args, env) {
326
391
  if (!command) {
327
392
  throw new Error('Command must be non-empty.');
328
393
  }
329
- const configDir = path.dirname(CONFIG_PATH);
394
+ const configDir = path.dirname(paths_js_1.MCP_CONFIG_PATH);
330
395
  if (!fs.existsSync(configDir)) {
331
396
  fs.mkdirSync(configDir, { recursive: true });
332
397
  }
333
398
  let config = { mcpServers: {} };
334
- if (fs.existsSync(CONFIG_PATH)) {
335
- const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
399
+ if (fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
400
+ const raw = fs.readFileSync(paths_js_1.MCP_CONFIG_PATH, 'utf-8');
336
401
  try {
337
402
  config = JSON.parse(raw);
338
403
  }
339
404
  catch {
340
- throw new Error(`Invalid JSON in ${CONFIG_PATH}`);
405
+ throw new Error(`Invalid JSON in ${paths_js_1.MCP_CONFIG_PATH}`);
341
406
  }
342
407
  }
343
408
  if (key in config.mcpServers) {
@@ -349,8 +414,17 @@ function addMCPServer(key, command, args, env) {
349
414
  if (env && Object.keys(env).length > 0)
350
415
  entry.env = env;
351
416
  config.mcpServers[key] = entry;
352
- fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
417
+ fs.writeFileSync(paths_js_1.MCP_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
353
418
  }
419
+ /**
420
+ * Adds a URL-based (SSE or HTTP) MCP server entry to the MCP config file.
421
+ * @param key - Unique, whitespace-free identifier for the server.
422
+ * @param url - The server endpoint URL.
423
+ * @param type - Transport type; defaults to `'sse'` at connection time.
424
+ * @param headers - Optional HTTP headers sent with every request.
425
+ * @throws {Error} If the key is empty/contains whitespace, the URL is empty,
426
+ * the key already exists, or the config file contains invalid JSON.
427
+ */
354
428
  function addMCPUrlServer(key, url, type, headers) {
355
429
  if (!key || /\s/.test(key)) {
356
430
  throw new Error('Server key must be non-empty and contain no whitespace.');
@@ -358,18 +432,18 @@ function addMCPUrlServer(key, url, type, headers) {
358
432
  if (!url) {
359
433
  throw new Error('URL must be non-empty.');
360
434
  }
361
- const configDir = path.dirname(CONFIG_PATH);
435
+ const configDir = path.dirname(paths_js_1.MCP_CONFIG_PATH);
362
436
  if (!fs.existsSync(configDir)) {
363
437
  fs.mkdirSync(configDir, { recursive: true });
364
438
  }
365
439
  let config = { mcpServers: {} };
366
- if (fs.existsSync(CONFIG_PATH)) {
367
- const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
440
+ if (fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
441
+ const raw = fs.readFileSync(paths_js_1.MCP_CONFIG_PATH, 'utf-8');
368
442
  try {
369
443
  config = JSON.parse(raw);
370
444
  }
371
445
  catch {
372
- throw new Error(`Invalid JSON in ${CONFIG_PATH}`);
446
+ throw new Error(`Invalid JSON in ${paths_js_1.MCP_CONFIG_PATH}`);
373
447
  }
374
448
  }
375
449
  if (key in config.mcpServers) {
@@ -381,28 +455,31 @@ function addMCPUrlServer(key, url, type, headers) {
381
455
  if (headers && Object.keys(headers).length > 0)
382
456
  entry.headers = headers;
383
457
  config.mcpServers[key] = entry;
384
- fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
458
+ fs.writeFileSync(paths_js_1.MCP_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
385
459
  }
460
+ /**
461
+ * Removes an MCP server entry from the MCP config file.
462
+ * @param key - The server key to remove.
463
+ * @throws {Error} If the config file does not exist, contains invalid JSON, or the key is not found.
464
+ */
386
465
  function removeMCPServer(key) {
387
- if (!fs.existsSync(CONFIG_PATH)) {
466
+ if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
388
467
  throw new Error(`No MCP config file found. No servers configured.`);
389
468
  }
390
- const raw = fs.readFileSync(CONFIG_PATH, 'utf-8');
469
+ const raw = fs.readFileSync(paths_js_1.MCP_CONFIG_PATH, 'utf-8');
391
470
  let config;
392
471
  try {
393
472
  config = JSON.parse(raw);
394
473
  }
395
474
  catch {
396
- throw new Error(`Invalid JSON in ${CONFIG_PATH}`);
475
+ throw new Error(`Invalid JSON in ${paths_js_1.MCP_CONFIG_PATH}`);
397
476
  }
398
477
  if (!(key in config.mcpServers)) {
399
478
  const validKeys = Object.keys(config.mcpServers);
400
- const hint = validKeys.length > 0
401
- ? ` Valid keys: ${validKeys.join(', ')}`
402
- : ' No servers configured.';
479
+ const hint = validKeys.length > 0 ? ` Valid keys: ${validKeys.join(', ')}` : ' No servers configured.';
403
480
  throw new Error(`MCP server "${key}" not found.${hint}`);
404
481
  }
405
482
  delete config.mcpServers[key];
406
- fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
483
+ fs.writeFileSync(paths_js_1.MCP_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
407
484
  }
408
485
  //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import type { MemoryStore } from './memory.js';
2
2
  import type { RAGSearchResult } from './rag.js';
3
+ /** Options for building the memory/RAG context block injected into the system prompt. */
3
4
  export interface MemoryContextOptions {
5
+ /** Persistent disk-backed memory store providing saved notes and scratch data. */
4
6
  memoryStore: MemoryStore;
7
+ /** RAG search results to include as recalled context (omit or empty to skip). */
5
8
  ragResults?: RAGSearchResult[];
9
+ /** Whether to include session-scoped scratch notes (default: true). */
6
10
  includeScratch?: boolean;
7
11
  }
8
12
  /**
@@ -11,7 +11,10 @@ function buildMemoryContext(options) {
11
11
  const { memoryStore, ragResults, includeScratch = true } = options;
12
12
  let context = '';
13
13
  if (ragResults && ragResults.length > 0) {
14
- context += '\n\n## Recalled Context\nReference only if directly relevant to the current discussion.';
14
+ context += `
15
+
16
+ ## Recalled Context
17
+ These are auto-recalled observations from past sessions. Treat them as hints — they provide useful background but may be outdated, from a different project, or too general for the current situation. Use your judgment: apply what's relevant, ignore what isn't, and never follow a recalled fact blindly when the current context suggests otherwise.`;
15
18
  const byDomain = new Map();
16
19
  for (const r of ragResults) {
17
20
  const d = r.domain;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-context.js","sourceRoot":"","sources":["../src/memory-context.ts"],"names":[],"mappings":";;AAeA,gDA0CC;AAvDD,6CAAyC;AAQzC;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,OAA6B;IAC9D,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACnE,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,yFAAyF,CAAC;QAErG,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;IACpD,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,4BAA4B,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,SAAS,GAAG,KAAK,OAAO,IAAI,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,uCAAuC,CAAC;YACnD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,OAAO,IAAI,SAAS,GAAG,KAAK,OAAO,IAAI,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"memory-context.js","sourceRoot":"","sources":["../src/memory-context.ts"],"names":[],"mappings":";;AAmBA,gDA6CC;AA9DD,6CAAyC;AAYzC;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,OAA6B;IAC9D,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACnE,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI;;;0VAG2U,CAAC;QAEvV,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;IACpD,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,4BAA4B,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,SAAS,GAAG,KAAK,OAAO,IAAI,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,uCAAuC,CAAC;YACnD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBACrC,OAAO,IAAI,SAAS,GAAG,KAAK,OAAO,IAAI,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/memory.d.ts CHANGED
@@ -1,17 +1,34 @@
1
1
  /** @internal */
2
2
  export declare function sanitizeKey(key: string): string;
3
+ /**
4
+ * Dual-layer store providing disk-backed persistent memory and ephemeral in-memory scratch notes.
5
+ *
6
+ * Persistent memory is stored as individual Markdown files in the data directory.
7
+ * Scratch notes live only for the current session and are discarded on exit.
8
+ */
3
9
  export declare class MemoryStore {
4
10
  private scratch;
5
11
  constructor();
12
+ /** Returns the keys of all persistent memory entries (filenames without `.md` extension). */
6
13
  listMemory(): string[];
14
+ /** Reads a persistent memory entry by key, returning `null` if it does not exist. */
7
15
  readMemory(key: string): string | null;
16
+ /** Creates or overwrites a persistent memory entry on disk. */
8
17
  writeMemory(key: string, content: string): void;
18
+ /** Deletes a persistent memory entry. Returns `true` if the entry existed and was removed. */
9
19
  deleteMemory(key: string): boolean;
20
+ /** Returns all persistent memory entries as a key-content map. */
10
21
  getAllMemoryContents(): Map<string, string>;
22
+ /** Returns the keys of all scratch notes in the current session. */
11
23
  listScratch(): string[];
24
+ /** Reads a scratch note by key, returning `null` if it does not exist. */
12
25
  readScratch(key: string): string | null;
26
+ /** Creates or overwrites a scratch note for the current session. */
13
27
  writeScratch(key: string, content: string): void;
28
+ /** Deletes a scratch note. Returns `true` if the note existed and was removed. */
14
29
  deleteScratch(key: string): boolean;
30
+ /** Returns a shallow copy of all scratch notes as a key-content map. */
15
31
  getAllScratchContents(): Map<string, string>;
32
+ /** Removes all scratch notes from the current session. */
16
33
  clearScratch(): void;
17
34
  }
package/dist/memory.js CHANGED
@@ -37,41 +37,49 @@ exports.MemoryStore = void 0;
37
37
  exports.sanitizeKey = sanitizeKey;
38
38
  const fs = __importStar(require("node:fs"));
39
39
  const path = __importStar(require("node:path"));
40
- const os = __importStar(require("node:os"));
41
- const MEMORY_DIR = path.join(os.homedir(), '.bernard', 'memory');
40
+ const paths_js_1 = require("./paths.js");
42
41
  /** @internal */
43
42
  function sanitizeKey(key) {
44
43
  return key.replace(/[^a-zA-Z0-9_-]/g, '');
45
44
  }
45
+ /**
46
+ * Dual-layer store providing disk-backed persistent memory and ephemeral in-memory scratch notes.
47
+ *
48
+ * Persistent memory is stored as individual Markdown files in the data directory.
49
+ * Scratch notes live only for the current session and are discarded on exit.
50
+ */
46
51
  class MemoryStore {
47
52
  scratch = new Map();
48
53
  constructor() {
49
- fs.mkdirSync(MEMORY_DIR, { recursive: true });
54
+ fs.mkdirSync(paths_js_1.MEMORY_DIR, { recursive: true });
50
55
  }
51
56
  // --- Persistent Memory (disk-backed) ---
57
+ /** Returns the keys of all persistent memory entries (filenames without `.md` extension). */
52
58
  listMemory() {
53
- const files = fs.readdirSync(MEMORY_DIR);
54
- return files
55
- .filter(f => f.endsWith('.md'))
56
- .map(f => f.replace(/\.md$/, ''));
59
+ const files = fs.readdirSync(paths_js_1.MEMORY_DIR);
60
+ return files.filter((f) => f.endsWith('.md')).map((f) => f.replace(/\.md$/, ''));
57
61
  }
62
+ /** Reads a persistent memory entry by key, returning `null` if it does not exist. */
58
63
  readMemory(key) {
59
- const filePath = path.join(MEMORY_DIR, `${sanitizeKey(key)}.md`);
64
+ const filePath = path.join(paths_js_1.MEMORY_DIR, `${sanitizeKey(key)}.md`);
60
65
  if (!fs.existsSync(filePath))
61
66
  return null;
62
67
  return fs.readFileSync(filePath, 'utf-8');
63
68
  }
69
+ /** Creates or overwrites a persistent memory entry on disk. */
64
70
  writeMemory(key, content) {
65
- const filePath = path.join(MEMORY_DIR, `${sanitizeKey(key)}.md`);
71
+ const filePath = path.join(paths_js_1.MEMORY_DIR, `${sanitizeKey(key)}.md`);
66
72
  fs.writeFileSync(filePath, content, 'utf-8');
67
73
  }
74
+ /** Deletes a persistent memory entry. Returns `true` if the entry existed and was removed. */
68
75
  deleteMemory(key) {
69
- const filePath = path.join(MEMORY_DIR, `${sanitizeKey(key)}.md`);
76
+ const filePath = path.join(paths_js_1.MEMORY_DIR, `${sanitizeKey(key)}.md`);
70
77
  if (!fs.existsSync(filePath))
71
78
  return false;
72
79
  fs.unlinkSync(filePath);
73
80
  return true;
74
81
  }
82
+ /** Returns all persistent memory entries as a key-content map. */
75
83
  getAllMemoryContents() {
76
84
  const result = new Map();
77
85
  for (const key of this.listMemory()) {
@@ -83,21 +91,27 @@ class MemoryStore {
83
91
  return result;
84
92
  }
85
93
  // --- Scratch Notes (in-memory, session only) ---
94
+ /** Returns the keys of all scratch notes in the current session. */
86
95
  listScratch() {
87
96
  return Array.from(this.scratch.keys());
88
97
  }
98
+ /** Reads a scratch note by key, returning `null` if it does not exist. */
89
99
  readScratch(key) {
90
100
  return this.scratch.get(key) ?? null;
91
101
  }
102
+ /** Creates or overwrites a scratch note for the current session. */
92
103
  writeScratch(key, content) {
93
104
  this.scratch.set(key, content);
94
105
  }
106
+ /** Deletes a scratch note. Returns `true` if the note existed and was removed. */
95
107
  deleteScratch(key) {
96
108
  return this.scratch.delete(key);
97
109
  }
110
+ /** Returns a shallow copy of all scratch notes as a key-content map. */
98
111
  getAllScratchContents() {
99
112
  return new Map(this.scratch);
100
113
  }
114
+ /** Removes all scratch notes from the current session. */
101
115
  clearScratch() {
102
116
  this.scratch.clear();
103
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Migrate files from the legacy `~/.bernard/` layout to XDG directories.
3
+ *
4
+ * - No-op if `BERNARD_HOME` is set (user explicitly controls layout)
5
+ * - No-op if `~/.bernard/` does not exist (fresh install)
6
+ * - No-op if already migrated (MIGRATED marker exists or prefs in XDG location)
7
+ *
8
+ * @returns Object with `migrated` flag and any non-fatal `errors` encountered.
9
+ */
10
+ export declare function migrateFromLegacy(): {
11
+ migrated: boolean;
12
+ errors: string[];
13
+ };