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.
- package/README.md +109 -38
- package/THIRD-PARTY-NOTICES +212 -0
- package/dist/agent.d.ts +32 -3
- package/dist/agent.js +63 -12
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +67 -0
- package/dist/config.js +99 -31
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +7 -0
- package/dist/context.js +32 -20
- package/dist/context.js.map +1 -1
- package/dist/cron/cli.d.ts +7 -0
- package/dist/cron/cli.js +61 -5
- package/dist/cron/cli.js.map +1 -1
- package/dist/cron/client.d.ts +9 -0
- package/dist/cron/client.js +9 -0
- package/dist/cron/client.js.map +1 -1
- package/dist/cron/daemon.js +12 -1
- package/dist/cron/daemon.js.map +1 -1
- package/dist/cron/log-store.d.ts +18 -0
- package/dist/cron/log-store.js +41 -18
- package/dist/cron/log-store.js.map +1 -1
- package/dist/cron/notify.d.ts +7 -0
- package/dist/cron/notify.js +16 -0
- package/dist/cron/notify.js.map +1 -1
- package/dist/cron/runner.d.ts +11 -0
- package/dist/cron/runner.js +77 -20
- package/dist/cron/runner.js.map +1 -1
- package/dist/cron/scheduler.d.ts +16 -0
- package/dist/cron/scheduler.js +24 -7
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/cron/store.d.ts +32 -0
- package/dist/cron/store.js +64 -27
- package/dist/cron/store.js.map +1 -1
- package/dist/cron/types.d.ts +19 -0
- package/dist/domains.d.ts +15 -0
- package/dist/domains.js +20 -1
- package/dist/domains.js.map +1 -1
- package/dist/embeddings.d.ts +7 -1
- package/dist/embeddings.js +43 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/facts-cli.d.ts +14 -0
- package/dist/facts-cli.js +55 -1
- package/dist/facts-cli.js.map +1 -1
- package/dist/history.d.ts +8 -0
- package/dist/history.js +14 -9
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +36 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/logger.js +6 -0
- package/dist/logger.js.map +1 -1
- package/dist/mcp.d.ts +87 -0
- package/dist/mcp.js +116 -39
- package/dist/mcp.js.map +1 -1
- package/dist/memory-context.d.ts +4 -0
- package/dist/memory-context.js +4 -1
- package/dist/memory-context.js.map +1 -1
- package/dist/memory.d.ts +17 -0
- package/dist/memory.js +24 -10
- package/dist/memory.js.map +1 -1
- package/dist/migrate.d.ts +13 -0
- package/dist/migrate.js +209 -0
- package/dist/migrate.js.map +1 -0
- package/dist/output.d.ts +46 -1
- package/dist/output.js +72 -11
- package/dist/output.js.map +1 -1
- package/dist/paths.d.ts +23 -0
- package/dist/paths.js +82 -0
- package/dist/paths.js.map +1 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.js +7 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/types.d.ts +4 -0
- package/dist/rag-query.d.ts +20 -0
- package/dist/rag-query.js +70 -6
- package/dist/rag-query.js.map +1 -1
- package/dist/rag-worker.js.map +1 -1
- package/dist/rag.d.ts +41 -1
- package/dist/rag.js +125 -21
- package/dist/rag.js.map +1 -1
- package/dist/repl.d.ts +6 -0
- package/dist/repl.js +211 -44
- package/dist/repl.js.map +1 -1
- package/dist/routines.d.ts +49 -0
- package/dist/routines.js +172 -0
- package/dist/routines.js.map +1 -0
- package/dist/setup.d.ts +5 -0
- package/dist/setup.js +8 -2
- package/dist/setup.js.map +1 -1
- package/dist/theme.d.ts +41 -0
- package/dist/theme.js +55 -5
- package/dist/theme.js.map +1 -1
- package/dist/tools/cron-logs.d.ts +6 -0
- package/dist/tools/cron-logs.js +17 -4
- package/dist/tools/cron-logs.js.map +1 -1
- package/dist/tools/cron.d.ts +18 -0
- package/dist/tools/cron.js +67 -11
- package/dist/tools/cron.js.map +1 -1
- package/dist/tools/datetime.d.ts +1 -0
- package/dist/tools/datetime.js +1 -0
- package/dist/tools/datetime.js.map +1 -1
- package/dist/tools/index.d.ts +10 -325
- package/dist/tools/index.js +11 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-url.d.ts +6 -0
- package/dist/tools/mcp-url.js +6 -0
- package/dist/tools/mcp-url.js.map +1 -1
- package/dist/tools/mcp.d.ts +6 -0
- package/dist/tools/mcp.js +25 -12
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/memory.d.ts +14 -0
- package/dist/tools/memory.js +18 -3
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/routine.d.ts +35 -0
- package/dist/tools/routine.js +93 -0
- package/dist/tools/routine.js.map +1 -0
- package/dist/tools/shell.d.ts +15 -1
- package/dist/tools/shell.js +16 -2
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/subagent.d.ts +18 -1
- package/dist/tools/subagent.js +27 -7
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/time.d.ts +19 -0
- package/dist/tools/time.js +27 -4
- package/dist/tools/time.js.map +1 -1
- package/dist/tools/types.d.ts +6 -0
- package/dist/tools/wait.d.ts +3 -0
- package/dist/tools/wait.js +3 -0
- package/dist/tools/wait.js.map +1 -1
- package/dist/tools/web.d.ts +6 -0
- package/dist/tools/web.js +29 -6
- package/dist/tools/web.js.map +1 -1
- package/dist/update.d.ts +5 -0
- package/dist/update.js +8 -7
- package/dist/update.js.map +1 -1
- 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
|
|
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(
|
|
70
|
+
if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
|
|
60
71
|
return { mcpServers: {} };
|
|
61
72
|
}
|
|
62
|
-
const raw = fs.readFileSync(
|
|
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 ${
|
|
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 {
|
|
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(
|
|
340
|
+
if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
|
|
291
341
|
return [];
|
|
292
342
|
}
|
|
293
|
-
const raw = fs.readFileSync(
|
|
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 ${
|
|
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(
|
|
365
|
+
if (!fs.existsSync(paths_js_1.MCP_CONFIG_PATH)) {
|
|
310
366
|
return undefined;
|
|
311
367
|
}
|
|
312
|
-
const raw = fs.readFileSync(
|
|
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 ${
|
|
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(
|
|
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(
|
|
335
|
-
const raw = fs.readFileSync(
|
|
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 ${
|
|
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(
|
|
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(
|
|
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(
|
|
367
|
-
const raw = fs.readFileSync(
|
|
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 ${
|
|
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(
|
|
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(
|
|
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(
|
|
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 ${
|
|
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(
|
|
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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"}
|
package/dist/memory-context.d.ts
CHANGED
|
@@ -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
|
/**
|
package/dist/memory-context.js
CHANGED
|
@@ -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 +=
|
|
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":";;
|
|
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
|
|
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
|
}
|
package/dist/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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
|
+
};
|