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/providers/index.js
CHANGED
|
@@ -4,6 +4,13 @@ exports.getModel = getModel;
|
|
|
4
4
|
const anthropic_1 = require("@ai-sdk/anthropic");
|
|
5
5
|
const openai_1 = require("@ai-sdk/openai");
|
|
6
6
|
const xai_1 = require("@ai-sdk/xai");
|
|
7
|
+
/**
|
|
8
|
+
* Return an AI SDK `LanguageModel` instance for the given provider and model name.
|
|
9
|
+
* @param provider - One of `"anthropic"`, `"openai"`, or `"xai"`.
|
|
10
|
+
* @param model - Provider-specific model identifier (e.g. `"claude-sonnet-4-20250514"`).
|
|
11
|
+
* @returns A ready-to-use `LanguageModel` backed by the requested provider.
|
|
12
|
+
* @throws {Error} If the provider string is not recognized.
|
|
13
|
+
*/
|
|
7
14
|
function getModel(provider, model) {
|
|
8
15
|
switch (provider) {
|
|
9
16
|
case 'anthropic':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;AAYA,4BAWC;AAvBD,iDAA8C;AAC9C,2CAAwC;AACxC,qCAAkC;AAGlC;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,QAAgB,EAAE,KAAa;IACtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;QACvB,KAAK,KAAK;YACR,OAAO,IAAA,SAAG,EAAC,KAAK,CAAC,CAAC;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,qCAAqC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
/** Supported LLM provider identifiers. */
|
|
1
2
|
export type ProviderName = 'anthropic' | 'openai' | 'xai';
|
|
3
|
+
/** Provider and model pair used to instantiate an AI SDK `LanguageModel`. */
|
|
2
4
|
export interface ProviderConfig {
|
|
5
|
+
/** Which LLM provider to use. */
|
|
3
6
|
provider: ProviderName;
|
|
7
|
+
/** Model identifier passed to the provider SDK (e.g. "claude-sonnet-4-5-20250929"). */
|
|
4
8
|
model: string;
|
|
5
9
|
}
|
package/dist/rag-query.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { CoreMessage } from 'ai';
|
|
2
2
|
import type { RAGSearchResult } from './rag.js';
|
|
3
|
+
/** Number of recent user messages (beyond the current input) to include in the RAG query. */
|
|
3
4
|
export declare const DEFAULT_WINDOW_SIZE = 2;
|
|
5
|
+
/** Maximum character length for the composed RAG search query. */
|
|
4
6
|
export declare const DEFAULT_MAX_QUERY_CHARS = 1000;
|
|
7
|
+
/** Similarity score bonus applied to facts that appeared in the previous turn's results. */
|
|
5
8
|
export declare const DEFAULT_STICKINESS_BOOST = 0.05;
|
|
6
9
|
/**
|
|
7
10
|
* Walk history backward and collect up to `maxMessages` user-role text strings.
|
|
@@ -9,8 +12,21 @@ export declare const DEFAULT_STICKINESS_BOOST = 0.05;
|
|
|
9
12
|
* Returns texts in chronological order (oldest first).
|
|
10
13
|
*/
|
|
11
14
|
export declare function extractRecentUserTexts(history: CoreMessage[], maxMessages?: number): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Walk history backward and collect tool call names + compact args from assistant messages.
|
|
17
|
+
* Returns a comma-separated string in chronological order (oldest first).
|
|
18
|
+
*
|
|
19
|
+
* @param history - Conversation history to scan
|
|
20
|
+
* @param maxMessages - Maximum number of assistant messages to scan (default: 3)
|
|
21
|
+
* @param maxChars - Maximum character length for the returned string (default: 200)
|
|
22
|
+
*/
|
|
23
|
+
export declare function extractRecentToolContext(history: CoreMessage[], maxMessages?: number, maxChars?: number): string;
|
|
24
|
+
/** Options for {@link buildRAGQuery}. */
|
|
12
25
|
export interface BuildRAGQueryOptions {
|
|
26
|
+
/** Character budget for the composed query (default: 1000). */
|
|
13
27
|
maxQueryChars?: number;
|
|
28
|
+
/** Comma-separated tool context string (e.g. "shell(command=ls), memory"). */
|
|
29
|
+
toolContext?: string;
|
|
14
30
|
}
|
|
15
31
|
/**
|
|
16
32
|
* Build a RAG search query from the current user input plus recent history.
|
|
@@ -18,9 +34,13 @@ export interface BuildRAGQueryOptions {
|
|
|
18
34
|
* Truncates older messages first to stay within the character budget.
|
|
19
35
|
*/
|
|
20
36
|
export declare function buildRAGQuery(currentInput: string, recentUserTexts: string[], options?: BuildRAGQueryOptions): string;
|
|
37
|
+
/** Options for {@link applyStickiness}. */
|
|
21
38
|
export interface ApplyStickinessOptions {
|
|
39
|
+
/** Similarity score bonus for previously-seen facts (default: 0.05). */
|
|
22
40
|
boost?: number;
|
|
41
|
+
/** Max results to keep per domain after re-ranking (default: 5). */
|
|
23
42
|
topKPerDomain?: number;
|
|
43
|
+
/** Max total results after re-ranking (default: 15). */
|
|
24
44
|
maxResults?: number;
|
|
25
45
|
}
|
|
26
46
|
/**
|
package/dist/rag-query.js
CHANGED
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_STICKINESS_BOOST = exports.DEFAULT_MAX_QUERY_CHARS = exports.DEFAULT_WINDOW_SIZE = void 0;
|
|
4
4
|
exports.extractRecentUserTexts = extractRecentUserTexts;
|
|
5
|
+
exports.extractRecentToolContext = extractRecentToolContext;
|
|
5
6
|
exports.buildRAGQuery = buildRAGQuery;
|
|
6
7
|
exports.applyStickiness = applyStickiness;
|
|
7
8
|
const context_js_1 = require("./context.js");
|
|
9
|
+
const rag_js_1 = require("./rag.js");
|
|
10
|
+
/** Number of recent user messages (beyond the current input) to include in the RAG query. */
|
|
8
11
|
exports.DEFAULT_WINDOW_SIZE = 2;
|
|
12
|
+
/** Maximum character length for the composed RAG search query. */
|
|
9
13
|
exports.DEFAULT_MAX_QUERY_CHARS = 1000;
|
|
14
|
+
/** Similarity score bonus applied to facts that appeared in the previous turn's results. */
|
|
10
15
|
exports.DEFAULT_STICKINESS_BOOST = 0.05;
|
|
11
16
|
const BOUNDARY_PREFIXES = [
|
|
12
17
|
'[Context Summary',
|
|
@@ -36,6 +41,60 @@ function extractRecentUserTexts(history, maxMessages = exports.DEFAULT_WINDOW_SI
|
|
|
36
41
|
texts.reverse();
|
|
37
42
|
return texts;
|
|
38
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Compact a tool call's args into a short summary string.
|
|
46
|
+
* Only includes the first key-value pair for brevity — tool calls
|
|
47
|
+
* are used as lightweight retrieval signals, not full records.
|
|
48
|
+
* Returns a "key=value" string, or empty string if args is empty/null.
|
|
49
|
+
*/
|
|
50
|
+
function compactArgs(args) {
|
|
51
|
+
if (!args || typeof args !== 'object')
|
|
52
|
+
return '';
|
|
53
|
+
const keys = Object.keys(args);
|
|
54
|
+
if (keys.length === 0)
|
|
55
|
+
return '';
|
|
56
|
+
const key = keys[0];
|
|
57
|
+
const raw = String(args[key] ?? '');
|
|
58
|
+
const value = raw.length > 60 ? raw.slice(0, 57) + '...' : raw;
|
|
59
|
+
return `${key}=${value}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Walk history backward and collect tool call names + compact args from assistant messages.
|
|
63
|
+
* Returns a comma-separated string in chronological order (oldest first).
|
|
64
|
+
*
|
|
65
|
+
* @param history - Conversation history to scan
|
|
66
|
+
* @param maxMessages - Maximum number of assistant messages to scan (default: 3)
|
|
67
|
+
* @param maxChars - Maximum character length for the returned string (default: 200)
|
|
68
|
+
*/
|
|
69
|
+
function extractRecentToolContext(history, maxMessages = 3, maxChars = 200) {
|
|
70
|
+
const entries = [];
|
|
71
|
+
let scanned = 0;
|
|
72
|
+
for (let i = history.length - 1; i >= 0 && scanned < maxMessages; i--) {
|
|
73
|
+
const msg = history[i];
|
|
74
|
+
if (msg.role !== 'assistant')
|
|
75
|
+
continue;
|
|
76
|
+
scanned++;
|
|
77
|
+
if (!Array.isArray(msg.content))
|
|
78
|
+
continue;
|
|
79
|
+
const msgEntries = [];
|
|
80
|
+
for (const part of msg.content) {
|
|
81
|
+
if (part.type === 'tool-call') {
|
|
82
|
+
const compact = compactArgs(part.args);
|
|
83
|
+
msgEntries.push(compact ? `${part.toolName}(${compact})` : part.toolName);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
entries.unshift(...msgEntries);
|
|
87
|
+
}
|
|
88
|
+
if (entries.length === 0)
|
|
89
|
+
return '';
|
|
90
|
+
let result = entries.join(', ');
|
|
91
|
+
if (result.length > maxChars) {
|
|
92
|
+
if (maxChars < 3)
|
|
93
|
+
return '';
|
|
94
|
+
result = result.slice(0, maxChars - 3) + '...';
|
|
95
|
+
}
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
39
98
|
/**
|
|
40
99
|
* Build a RAG search query from the current user input plus recent history.
|
|
41
100
|
* Current input is always at the end (transformers attend more to later tokens).
|
|
@@ -43,7 +102,8 @@ function extractRecentUserTexts(history, maxMessages = exports.DEFAULT_WINDOW_SI
|
|
|
43
102
|
*/
|
|
44
103
|
function buildRAGQuery(currentInput, recentUserTexts, options) {
|
|
45
104
|
const maxChars = options?.maxQueryChars ?? exports.DEFAULT_MAX_QUERY_CHARS;
|
|
46
|
-
|
|
105
|
+
const toolContext = options?.toolContext;
|
|
106
|
+
if (recentUserTexts.length === 0 && !toolContext)
|
|
47
107
|
return currentInput.slice(0, maxChars);
|
|
48
108
|
// Always preserve current input (truncate if alone it exceeds budget)
|
|
49
109
|
const current = currentInput.slice(0, maxChars);
|
|
@@ -60,6 +120,12 @@ function buildRAGQuery(currentInput, recentUserTexts, options) {
|
|
|
60
120
|
parts.unshift(truncated);
|
|
61
121
|
remaining -= truncated.length + 2; // -2 for ". " separator between parts
|
|
62
122
|
}
|
|
123
|
+
// Tool context is lowest-priority: only inserted if remaining budget > 10 chars
|
|
124
|
+
if (toolContext && remaining > 10) {
|
|
125
|
+
const wrapped = `[tools: ${toolContext}]`;
|
|
126
|
+
const truncatedTool = wrapped.slice(0, remaining);
|
|
127
|
+
parts.unshift(truncatedTool);
|
|
128
|
+
}
|
|
63
129
|
return [...parts, current].join('. ');
|
|
64
130
|
}
|
|
65
131
|
/**
|
|
@@ -71,14 +137,12 @@ function applyStickiness(currentResults, previousFacts, options) {
|
|
|
71
137
|
if (previousFacts.size === 0)
|
|
72
138
|
return currentResults;
|
|
73
139
|
const boost = options?.boost ?? exports.DEFAULT_STICKINESS_BOOST;
|
|
74
|
-
const topKPerDomain = options?.topKPerDomain ??
|
|
75
|
-
const maxResults = options?.maxResults ??
|
|
140
|
+
const topKPerDomain = options?.topKPerDomain ?? rag_js_1.DEFAULT_TOP_K_PER_DOMAIN;
|
|
141
|
+
const maxResults = options?.maxResults ?? rag_js_1.DEFAULT_MAX_RESULTS;
|
|
76
142
|
// Apply boost
|
|
77
143
|
const boosted = currentResults.map((r) => ({
|
|
78
144
|
...r,
|
|
79
|
-
similarity: previousFacts.has(r.fact)
|
|
80
|
-
? Math.min(r.similarity + boost, 1.0)
|
|
81
|
-
: r.similarity,
|
|
145
|
+
similarity: previousFacts.has(r.fact) ? Math.min(r.similarity + boost, 1.0) : r.similarity,
|
|
82
146
|
}));
|
|
83
147
|
// Re-sort by boosted similarity
|
|
84
148
|
boosted.sort((a, b) => b.similarity - a.similarity);
|
package/dist/rag-query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../src/rag-query.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../src/rag-query.ts"],"names":[],"mappings":";;;AAuBA,wDAsBC;AA0BD,4DAiCC;AAeD,sCAmCC;AAiBD,0CAgCC;AA1MD,6CAA2C;AAE3C,qCAAyE;AAEzE,6FAA6F;AAChF,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACrC,kEAAkE;AACrD,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAC5C,4FAA4F;AAC/E,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,iBAAiB,GAAG;IACxB,kBAAkB;IAClB,yBAAyB;IACzB,qCAAqC;CACtC,CAAC;AAEF;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,OAAsB,EACtB,cAAsB,2BAAmB;IAEzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAElC,MAAM,IAAI,GAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,yCAAyC;QACzC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QAE1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAgD;IACnE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/D,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,OAAsB,EACtB,cAAsB,CAAC,EACvB,WAAmB,GAAG;IAEtB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACvC,OAAO,EAAE,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAE1C,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;gBAClE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAUD;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,YAAoB,EACpB,eAAyB,EACzB,OAA8B;IAE9B,MAAM,QAAQ,GAAG,OAAO,EAAE,aAAa,IAAI,+BAAuB,CAAC;IAEnE,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IAEzC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEzF,sEAAsE;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,wBAAwB;IAEvE,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAEnC,6EAA6E;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,sCAAsC;IAC3E,CAAC;IAED,gFAAgF;IAChF,IAAI,WAAW,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,WAAW,GAAG,CAAC;QAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAClD,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAYD;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,cAAiC,EACjC,aAA0B,EAC1B,OAAgC;IAEhC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAEpD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,gCAAwB,CAAC;IACzD,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,iCAAwB,CAAC;IACzE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,4BAAmB,CAAC;IAE9D,cAAc;IACd,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,CAAC;QACJ,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;KAC3F,CAAC,CAAC,CAAC;IAEJ,gCAAgC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAEpD,wBAAwB;IACxB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,KAAK,IAAI,aAAa;YAAE,SAAS;QACrC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,QAAQ,CAAC,MAAM,IAAI,UAAU;YAAE,MAAM;IAC3C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/rag-worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-worker.js","sourceRoot":"","sources":["../src/rag-worker.ts"],"names":[],"mappings":";;AAEA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAA8B;AAC9B,2CAAyC;AACzC,6CAAkD;AAClD,qCAAoC;
|
|
1
|
+
{"version":3,"file":"rag-worker.js","sourceRoot":"","sources":["../src/rag-worker.ts"],"names":[],"mappings":";;AAEA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,4CAA8B;AAC9B,2CAAyC;AACzC,6CAAkD;AAClD,qCAAoC;AAYpC,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,+BAA+B;IAC/B,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,MAAM,MAAM,GAAG,IAAA,sBAAU,EAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhF,0CAA0C;IAC1C,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAkB,EAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEzE,+CAA+C;IAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,iBAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/rag.d.ts
CHANGED
|
@@ -1,18 +1,35 @@
|
|
|
1
|
+
/** Maximum results returned per domain before merging. */
|
|
2
|
+
export declare const DEFAULT_TOP_K_PER_DOMAIN = 5;
|
|
3
|
+
/** Maximum total results returned from a search. */
|
|
4
|
+
export declare const DEFAULT_MAX_RESULTS = 15;
|
|
5
|
+
/** A single stored memory with its embedding vector and lifecycle metadata. */
|
|
1
6
|
export interface RAGMemory {
|
|
7
|
+
/** Unique identifier (timestamp + random suffix). */
|
|
2
8
|
id: string;
|
|
9
|
+
/** The plain-text fact extracted from conversation. */
|
|
3
10
|
fact: string;
|
|
11
|
+
/** Pre-computed embedding vector for similarity search. */
|
|
4
12
|
embedding: number[];
|
|
13
|
+
/** Origin of the fact, e.g. "compression" or "user". */
|
|
5
14
|
source: string;
|
|
15
|
+
/** Domain category this fact belongs to (e.g. "general", "tool-usage"). */
|
|
6
16
|
domain: string;
|
|
17
|
+
/** ISO 8601 timestamp when the memory was created. */
|
|
7
18
|
createdAt: string;
|
|
19
|
+
/** Number of times this memory has been returned in search results. */
|
|
8
20
|
accessCount: number;
|
|
21
|
+
/** ISO 8601 timestamp of the most recent search hit. */
|
|
9
22
|
lastAccessed?: string;
|
|
23
|
+
/** ISO 8601 timestamp after which the memory is eligible for expiration pruning. */
|
|
24
|
+
expiresAt?: string;
|
|
10
25
|
}
|
|
26
|
+
/** A search result containing the matched fact, its similarity score, and domain. */
|
|
11
27
|
export interface RAGSearchResult {
|
|
12
28
|
fact: string;
|
|
13
29
|
similarity: number;
|
|
14
30
|
domain: string;
|
|
15
31
|
}
|
|
32
|
+
/** Extended search result that includes the memory ID and lifecycle metadata. */
|
|
16
33
|
export interface RAGSearchResultWithId {
|
|
17
34
|
id: string;
|
|
18
35
|
fact: string;
|
|
@@ -21,18 +38,31 @@ export interface RAGSearchResultWithId {
|
|
|
21
38
|
createdAt: string;
|
|
22
39
|
accessCount: number;
|
|
23
40
|
}
|
|
41
|
+
/** Optional configuration overrides for {@link RAGStore}. All fields fall back to sensible defaults. */
|
|
24
42
|
export interface RAGStoreConfig {
|
|
43
|
+
/** Max results per domain before merging (default: 5). */
|
|
25
44
|
topKPerDomain?: number;
|
|
45
|
+
/** Max total results from a search (default: 15). */
|
|
26
46
|
maxResults?: number;
|
|
47
|
+
/** Minimum cosine similarity to include a result (default: 0.35). */
|
|
27
48
|
similarityThreshold?: number;
|
|
49
|
+
/** Hard cap on stored memories (default: 5000). */
|
|
28
50
|
maxMemories?: number;
|
|
51
|
+
/** Time-to-live in days for new memories (default: 90). */
|
|
52
|
+
ragTtlDays?: number;
|
|
29
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Disk-backed vector store for long-term conversational memory.
|
|
56
|
+
* Stores facts as embeddings, supports similarity search with per-domain top-k ranking,
|
|
57
|
+
* and manages memory lifecycle via TTL-based expiration and capacity pruning.
|
|
58
|
+
*/
|
|
30
59
|
export declare class RAGStore {
|
|
31
60
|
private memories;
|
|
32
61
|
private topKPerDomain;
|
|
33
62
|
private maxResults;
|
|
34
63
|
private similarityThreshold;
|
|
35
64
|
private maxMemories;
|
|
65
|
+
private ragTtlDays;
|
|
36
66
|
constructor(config?: RAGStoreConfig);
|
|
37
67
|
/** Delete .pending-*.json temp files older than 1 hour (handles crashed workers). */
|
|
38
68
|
static cleanupStaleTemp(): void;
|
|
@@ -71,14 +101,24 @@ export declare class RAGStore {
|
|
|
71
101
|
listMemories(): RAGSearchResultWithId[];
|
|
72
102
|
/** Delete memories by ID. Returns the number of memories deleted. */
|
|
73
103
|
deleteByIds(ids: string[]): number;
|
|
104
|
+
/** Remove facts whose expiresAt has passed. Returns the number removed. */
|
|
105
|
+
private pruneExpired;
|
|
74
106
|
/**
|
|
75
107
|
* Prune memories if over the cap.
|
|
108
|
+
* First removes expired facts, then applies capacity-based scoring.
|
|
76
109
|
* Score = recency decay (half-life 90 days) + log2(accessCount + 1)
|
|
77
110
|
* Keeps top N by score.
|
|
78
111
|
*/
|
|
79
112
|
private prune;
|
|
80
|
-
/** Load memories from disk. Backfills
|
|
113
|
+
/** Load memories from disk. Backfills domain, expiresAt, and compensates for idle days. */
|
|
81
114
|
private load;
|
|
115
|
+
/**
|
|
116
|
+
* Compute the number of idle calendar days since the last session.
|
|
117
|
+
* Returns 0 if no previous session recorded or if used today/yesterday.
|
|
118
|
+
*/
|
|
119
|
+
private getIdleDays;
|
|
120
|
+
/** Write today's date as the last session date. */
|
|
121
|
+
private saveSessionDate;
|
|
82
122
|
/** Persist memories to disk atomically (write to tmp, then rename). */
|
|
83
123
|
private persist;
|
|
84
124
|
}
|
package/dist/rag.js
CHANGED
|
@@ -33,46 +33,62 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.RAGStore = void 0;
|
|
36
|
+
exports.RAGStore = exports.DEFAULT_MAX_RESULTS = exports.DEFAULT_TOP_K_PER_DOMAIN = void 0;
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
|
-
const os = __importStar(require("node:os"));
|
|
40
39
|
const embeddings_js_1 = require("./embeddings.js");
|
|
41
40
|
const logger_js_1 = require("./logger.js");
|
|
42
41
|
const domains_js_1 = require("./domains.js");
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
const paths_js_1 = require("./paths.js");
|
|
43
|
+
/** Maximum results returned per domain before merging. */
|
|
44
|
+
exports.DEFAULT_TOP_K_PER_DOMAIN = 5;
|
|
45
|
+
/** Maximum total results returned from a search. */
|
|
46
|
+
exports.DEFAULT_MAX_RESULTS = 15;
|
|
47
|
+
/** Minimum cosine similarity for a memory to be considered relevant. */
|
|
47
48
|
const DEFAULT_SIMILARITY_THRESHOLD = 0.35;
|
|
49
|
+
/** Hard cap on stored memories; excess is pruned by score. */
|
|
48
50
|
const DEFAULT_MAX_MEMORIES = 5000;
|
|
51
|
+
/** Cosine similarity above which a new fact is considered a duplicate. */
|
|
49
52
|
const DEDUP_THRESHOLD = 0.92;
|
|
53
|
+
/** Half-life in days for the recency decay used in capacity-based pruning. */
|
|
50
54
|
const PRUNE_HALF_LIFE_DAYS = 90;
|
|
55
|
+
/** Maximum age of `.pending-*.json` temp files before cleanup (1 hour). */
|
|
51
56
|
const STALE_TEMP_MAX_AGE_MS = 60 * 60 * 1000; // 1 hour
|
|
57
|
+
/** Default time-to-live in days for newly created memories. */
|
|
58
|
+
const DEFAULT_RAG_TTL_DAYS = 90;
|
|
59
|
+
/**
|
|
60
|
+
* Disk-backed vector store for long-term conversational memory.
|
|
61
|
+
* Stores facts as embeddings, supports similarity search with per-domain top-k ranking,
|
|
62
|
+
* and manages memory lifecycle via TTL-based expiration and capacity pruning.
|
|
63
|
+
*/
|
|
52
64
|
class RAGStore {
|
|
53
65
|
memories = [];
|
|
54
66
|
topKPerDomain;
|
|
55
67
|
maxResults;
|
|
56
68
|
similarityThreshold;
|
|
57
69
|
maxMemories;
|
|
70
|
+
ragTtlDays;
|
|
58
71
|
constructor(config) {
|
|
59
|
-
this.topKPerDomain = config?.topKPerDomain ?? DEFAULT_TOP_K_PER_DOMAIN;
|
|
60
|
-
this.maxResults = config?.maxResults ?? DEFAULT_MAX_RESULTS;
|
|
72
|
+
this.topKPerDomain = config?.topKPerDomain ?? exports.DEFAULT_TOP_K_PER_DOMAIN;
|
|
73
|
+
this.maxResults = config?.maxResults ?? exports.DEFAULT_MAX_RESULTS;
|
|
61
74
|
this.similarityThreshold = config?.similarityThreshold ?? DEFAULT_SIMILARITY_THRESHOLD;
|
|
62
75
|
this.maxMemories = config?.maxMemories ?? DEFAULT_MAX_MEMORIES;
|
|
63
|
-
|
|
76
|
+
this.ragTtlDays = config?.ragTtlDays ?? DEFAULT_RAG_TTL_DAYS;
|
|
77
|
+
fs.mkdirSync(paths_js_1.RAG_DIR, { recursive: true });
|
|
64
78
|
this.load();
|
|
79
|
+
this.saveSessionDate();
|
|
80
|
+
this.pruneExpired();
|
|
65
81
|
RAGStore.cleanupStaleTemp();
|
|
66
82
|
}
|
|
67
83
|
/** Delete .pending-*.json temp files older than 1 hour (handles crashed workers). */
|
|
68
84
|
static cleanupStaleTemp() {
|
|
69
85
|
try {
|
|
70
|
-
const entries = fs.readdirSync(RAG_DIR);
|
|
86
|
+
const entries = fs.readdirSync(paths_js_1.RAG_DIR);
|
|
71
87
|
const now = Date.now();
|
|
72
88
|
for (const entry of entries) {
|
|
73
89
|
if (!entry.startsWith('.pending-') || !entry.endsWith('.json'))
|
|
74
90
|
continue;
|
|
75
|
-
const filePath = path.join(RAG_DIR, entry);
|
|
91
|
+
const filePath = path.join(paths_js_1.RAG_DIR, entry);
|
|
76
92
|
try {
|
|
77
93
|
const stat = fs.statSync(filePath);
|
|
78
94
|
if (now - stat.mtimeMs > STALE_TEMP_MAX_AGE_MS) {
|
|
@@ -128,6 +144,7 @@ class RAGStore {
|
|
|
128
144
|
domain,
|
|
129
145
|
createdAt: now,
|
|
130
146
|
accessCount: 0,
|
|
147
|
+
expiresAt: new Date(Date.now() + this.ragTtlDays * 86400000).toISOString(),
|
|
131
148
|
});
|
|
132
149
|
added++;
|
|
133
150
|
}
|
|
@@ -190,11 +207,18 @@ class RAGStore {
|
|
|
190
207
|
return [];
|
|
191
208
|
const capped = this.scoreAndRank(queryEmbedding);
|
|
192
209
|
(0, logger_js_1.debugLog)('rag:search', { query: query.slice(0, 100), returned: capped.length });
|
|
193
|
-
// Update access metadata
|
|
210
|
+
// Update access metadata and extend expiration
|
|
194
211
|
const now = new Date().toISOString();
|
|
212
|
+
const nowMs = Date.now();
|
|
195
213
|
for (const { memory } of capped) {
|
|
196
214
|
memory.accessCount++;
|
|
197
215
|
memory.lastAccessed = now;
|
|
216
|
+
// Extend expiresAt: base of 7d + log scaling by access count, capped at half TTL
|
|
217
|
+
const extensionDays = Math.min(this.ragTtlDays * 0.5, 7 + Math.log2(memory.accessCount + 1) * 3);
|
|
218
|
+
const newExpiry = nowMs + extensionDays * 86400000;
|
|
219
|
+
if (!memory.expiresAt || newExpiry > new Date(memory.expiresAt).getTime()) {
|
|
220
|
+
memory.expiresAt = new Date(newExpiry).toISOString();
|
|
221
|
+
}
|
|
198
222
|
}
|
|
199
223
|
if (capped.length > 0) {
|
|
200
224
|
this.persist();
|
|
@@ -207,9 +231,13 @@ class RAGStore {
|
|
|
207
231
|
}
|
|
208
232
|
/** List all facts as plain text lines. */
|
|
209
233
|
listFacts() {
|
|
234
|
+
const now = Date.now();
|
|
210
235
|
return this.memories.map((m) => {
|
|
211
236
|
const date = m.createdAt.slice(0, 10);
|
|
212
|
-
|
|
237
|
+
const daysLeft = m.expiresAt
|
|
238
|
+
? Math.max(0, Math.ceil((new Date(m.expiresAt).getTime() - now) / 86400000))
|
|
239
|
+
: '?';
|
|
240
|
+
return `[${date}] [${m.domain}] (accessed ${m.accessCount}x, expires in ${daysLeft}d) ${m.fact}`;
|
|
213
241
|
});
|
|
214
242
|
}
|
|
215
243
|
/** Clear all memories. */
|
|
@@ -271,12 +299,26 @@ class RAGStore {
|
|
|
271
299
|
}
|
|
272
300
|
return deleted;
|
|
273
301
|
}
|
|
302
|
+
/** Remove facts whose expiresAt has passed. Returns the number removed. */
|
|
303
|
+
pruneExpired() {
|
|
304
|
+
const now = Date.now();
|
|
305
|
+
const before = this.memories.length;
|
|
306
|
+
this.memories = this.memories.filter((m) => !m.expiresAt || new Date(m.expiresAt).getTime() > now);
|
|
307
|
+
const expired = before - this.memories.length;
|
|
308
|
+
if (expired > 0) {
|
|
309
|
+
(0, logger_js_1.debugLog)('rag:pruneExpired', { expired });
|
|
310
|
+
this.persist();
|
|
311
|
+
}
|
|
312
|
+
return expired;
|
|
313
|
+
}
|
|
274
314
|
/**
|
|
275
315
|
* Prune memories if over the cap.
|
|
316
|
+
* First removes expired facts, then applies capacity-based scoring.
|
|
276
317
|
* Score = recency decay (half-life 90 days) + log2(accessCount + 1)
|
|
277
318
|
* Keeps top N by score.
|
|
278
319
|
*/
|
|
279
320
|
prune() {
|
|
321
|
+
this.pruneExpired();
|
|
280
322
|
if (this.memories.length <= this.maxMemories)
|
|
281
323
|
return;
|
|
282
324
|
const now = Date.now();
|
|
@@ -291,34 +333,96 @@ class RAGStore {
|
|
|
291
333
|
this.memories = scored.slice(0, this.maxMemories).map((s) => s.memory);
|
|
292
334
|
(0, logger_js_1.debugLog)('rag:prune', { kept: this.memories.length });
|
|
293
335
|
}
|
|
294
|
-
/** Load memories from disk. Backfills
|
|
336
|
+
/** Load memories from disk. Backfills domain, expiresAt, and compensates for idle days. */
|
|
295
337
|
load() {
|
|
296
338
|
try {
|
|
297
|
-
if (!fs.existsSync(MEMORIES_FILE))
|
|
339
|
+
if (!fs.existsSync(paths_js_1.MEMORIES_FILE))
|
|
298
340
|
return;
|
|
299
|
-
const data = fs.readFileSync(MEMORIES_FILE, 'utf-8');
|
|
341
|
+
const data = fs.readFileSync(paths_js_1.MEMORIES_FILE, 'utf-8');
|
|
300
342
|
const parsed = JSON.parse(data);
|
|
301
343
|
if (Array.isArray(parsed)) {
|
|
302
344
|
this.memories = parsed.map((m) => ({
|
|
303
345
|
...m,
|
|
304
346
|
domain: m.domain ?? domains_js_1.DEFAULT_DOMAIN,
|
|
305
|
-
embedding: Array.isArray(m.embedding)
|
|
306
|
-
? m.embedding
|
|
307
|
-
: Object.values(m.embedding),
|
|
347
|
+
embedding: Array.isArray(m.embedding) ? m.embedding : Object.values(m.embedding),
|
|
308
348
|
}));
|
|
309
349
|
}
|
|
310
350
|
}
|
|
311
351
|
catch (err) {
|
|
312
352
|
(0, logger_js_1.debugLog)('rag:load', `Failed to load memories: ${err instanceof Error ? err.message : String(err)}`);
|
|
313
353
|
this.memories = [];
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (this.memories.length === 0)
|
|
357
|
+
return;
|
|
358
|
+
let dirty = false;
|
|
359
|
+
// Backfill expiresAt for legacy facts without one (must run before idle-day shift)
|
|
360
|
+
const now = Date.now();
|
|
361
|
+
const ttlMs = this.ragTtlDays * 86400000;
|
|
362
|
+
const gracePeriodMs = 14 * 86400000;
|
|
363
|
+
for (const m of this.memories) {
|
|
364
|
+
if (!m.expiresAt) {
|
|
365
|
+
const ageMs = now - new Date(m.createdAt).getTime();
|
|
366
|
+
const remainingMs = ttlMs - ageMs;
|
|
367
|
+
m.expiresAt = new Date(now + Math.max(remainingMs, gracePeriodMs)).toISOString();
|
|
368
|
+
dirty = true;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
// Compensate for idle days — TTL only counts days Bernard was used
|
|
372
|
+
const idleDays = this.getIdleDays();
|
|
373
|
+
if (idleDays > 0) {
|
|
374
|
+
const shiftMs = idleDays * 86400000;
|
|
375
|
+
for (const m of this.memories) {
|
|
376
|
+
if (m.expiresAt) {
|
|
377
|
+
m.expiresAt = new Date(new Date(m.expiresAt).getTime() + shiftMs).toISOString();
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
(0, logger_js_1.debugLog)('rag:load', { idleDaysCompensated: idleDays });
|
|
381
|
+
dirty = true;
|
|
382
|
+
}
|
|
383
|
+
if (dirty) {
|
|
384
|
+
this.persist();
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Compute the number of idle calendar days since the last session.
|
|
389
|
+
* Returns 0 if no previous session recorded or if used today/yesterday.
|
|
390
|
+
*/
|
|
391
|
+
getIdleDays() {
|
|
392
|
+
try {
|
|
393
|
+
if (!fs.existsSync(paths_js_1.LAST_SESSION_FILE))
|
|
394
|
+
return 0;
|
|
395
|
+
const lastDateStr = fs.readFileSync(paths_js_1.LAST_SESSION_FILE, 'utf-8').trim();
|
|
396
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(lastDateStr))
|
|
397
|
+
return 0;
|
|
398
|
+
const todayStr = new Date().toISOString().slice(0, 10);
|
|
399
|
+
const lastDate = new Date(lastDateStr + 'T00:00:00Z');
|
|
400
|
+
const today = new Date(todayStr + 'T00:00:00Z');
|
|
401
|
+
const daysBetween = Math.round((today.getTime() - lastDate.getTime()) / 86400000);
|
|
402
|
+
// 0 = same day, 1 = consecutive days (normal), 2+ = idle gap
|
|
403
|
+
return Math.max(0, daysBetween - 1);
|
|
404
|
+
}
|
|
405
|
+
catch {
|
|
406
|
+
return 0;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/** Write today's date as the last session date. */
|
|
410
|
+
saveSessionDate() {
|
|
411
|
+
try {
|
|
412
|
+
const todayStr = new Date().toISOString().slice(0, 10);
|
|
413
|
+
fs.writeFileSync(paths_js_1.LAST_SESSION_FILE, todayStr, 'utf-8');
|
|
414
|
+
}
|
|
415
|
+
catch {
|
|
416
|
+
// Non-critical — just log
|
|
417
|
+
(0, logger_js_1.debugLog)('rag:saveSessionDate', 'Failed to save session date');
|
|
314
418
|
}
|
|
315
419
|
}
|
|
316
420
|
/** Persist memories to disk atomically (write to tmp, then rename). */
|
|
317
421
|
persist() {
|
|
318
422
|
try {
|
|
319
|
-
const tmpFile = MEMORIES_FILE + '.tmp';
|
|
423
|
+
const tmpFile = paths_js_1.MEMORIES_FILE + '.tmp';
|
|
320
424
|
fs.writeFileSync(tmpFile, JSON.stringify(this.memories), 'utf-8');
|
|
321
|
-
fs.renameSync(tmpFile, MEMORIES_FILE);
|
|
425
|
+
fs.renameSync(tmpFile, paths_js_1.MEMORIES_FILE);
|
|
322
426
|
}
|
|
323
427
|
catch (err) {
|
|
324
428
|
(0, logger_js_1.debugLog)('rag:persist', `Failed to persist memories: ${err instanceof Error ? err.message : String(err)}`);
|
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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"}
|
package/dist/repl.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
import { type BernardConfig } from './config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Launch the interactive REPL, wiring up readline, MCP servers, memory stores, and the agent loop.
|
|
4
|
+
* @param config - Resolved runtime configuration (provider, model, tokens, etc.).
|
|
5
|
+
* @param alertContext - Optional pre-filled context from a cron alert that triggered this session.
|
|
6
|
+
* @param resume - When true, reload the previous conversation from disk and continue it.
|
|
7
|
+
*/
|
|
2
8
|
export declare function startRepl(config: BernardConfig, alertContext?: string, resume?: boolean): Promise<void>;
|