bernard-agent 0.2.2 → 0.3.1
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/.env.example +10 -0
- package/README.md +16 -6
- package/dist/agent.d.ts +4 -0
- package/dist/agent.js +84 -38
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +38 -1
- package/dist/context.js +171 -41
- package/dist/context.js.map +1 -1
- package/dist/cron/runner.js +33 -1
- package/dist/cron/runner.js.map +1 -1
- package/dist/domains.d.ts +10 -0
- package/dist/domains.js +118 -0
- package/dist/domains.js.map +1 -0
- package/dist/facts-cli.d.ts +7 -0
- package/dist/facts-cli.js +197 -0
- package/dist/facts-cli.js.map +1 -0
- package/dist/index.js +62 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.js +1 -2
- package/dist/logger.js.map +1 -1
- package/dist/memory-context.d.ts +13 -0
- package/dist/memory-context.js +48 -0
- package/dist/memory-context.js.map +1 -0
- package/dist/output.js +39 -35
- package/dist/output.js.map +1 -1
- package/dist/rag-query.d.ts +31 -0
- package/dist/rag-query.js +99 -0
- package/dist/rag-query.js.map +1 -0
- package/dist/rag-worker.d.ts +1 -1
- package/dist/rag-worker.js +9 -6
- package/dist/rag-worker.js.map +1 -1
- package/dist/rag.d.ts +36 -5
- package/dist/rag.js +118 -31
- package/dist/rag.js.map +1 -1
- package/dist/repl.js +119 -12
- package/dist/repl.js.map +1 -1
- package/dist/setup.js +17 -18
- package/dist/setup.js.map +1 -1
- package/dist/theme.d.ts +28 -0
- package/dist/theme.js +154 -0
- package/dist/theme.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/subagent.d.ts +2 -1
- package/dist/tools/subagent.js +25 -5
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/wait.d.ts +14 -0
- package/dist/tools/wait.js +28 -0
- package/dist/tools/wait.js.map +1 -0
- package/dist/update.d.ts +35 -0
- package/dist/update.js +233 -0
- package/dist/update.js.map +1 -0
- package/package.json +2 -2
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CoreMessage } from 'ai';
|
|
2
|
+
import type { RAGSearchResult } from './rag.js';
|
|
3
|
+
export declare const DEFAULT_WINDOW_SIZE = 2;
|
|
4
|
+
export declare const DEFAULT_MAX_QUERY_CHARS = 1000;
|
|
5
|
+
export declare const DEFAULT_STICKINESS_BOOST = 0.05;
|
|
6
|
+
/**
|
|
7
|
+
* Walk history backward and collect up to `maxMessages` user-role text strings.
|
|
8
|
+
* Skips system-injected boundary messages (context summaries, session markers).
|
|
9
|
+
* Returns texts in chronological order (oldest first).
|
|
10
|
+
*/
|
|
11
|
+
export declare function extractRecentUserTexts(history: CoreMessage[], maxMessages?: number): string[];
|
|
12
|
+
export interface BuildRAGQueryOptions {
|
|
13
|
+
maxQueryChars?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build a RAG search query from the current user input plus recent history.
|
|
17
|
+
* Current input is always at the end (transformers attend more to later tokens).
|
|
18
|
+
* Truncates older messages first to stay within the character budget.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildRAGQuery(currentInput: string, recentUserTexts: string[], options?: BuildRAGQueryOptions): string;
|
|
21
|
+
export interface ApplyStickinessOptions {
|
|
22
|
+
boost?: number;
|
|
23
|
+
topKPerDomain?: number;
|
|
24
|
+
maxResults?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Boost similarity scores for facts that appeared in the previous turn's results.
|
|
28
|
+
* Re-sorts by boosted similarity and re-applies domain top-k and total cap.
|
|
29
|
+
* Boost is NOT cumulative — only relative to the immediately prior turn.
|
|
30
|
+
*/
|
|
31
|
+
export declare function applyStickiness(currentResults: RAGSearchResult[], previousFacts: Set<string>, options?: ApplyStickinessOptions): RAGSearchResult[];
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_STICKINESS_BOOST = exports.DEFAULT_MAX_QUERY_CHARS = exports.DEFAULT_WINDOW_SIZE = void 0;
|
|
4
|
+
exports.extractRecentUserTexts = extractRecentUserTexts;
|
|
5
|
+
exports.buildRAGQuery = buildRAGQuery;
|
|
6
|
+
exports.applyStickiness = applyStickiness;
|
|
7
|
+
const context_js_1 = require("./context.js");
|
|
8
|
+
exports.DEFAULT_WINDOW_SIZE = 2;
|
|
9
|
+
exports.DEFAULT_MAX_QUERY_CHARS = 1000;
|
|
10
|
+
exports.DEFAULT_STICKINESS_BOOST = 0.05;
|
|
11
|
+
const BOUNDARY_PREFIXES = [
|
|
12
|
+
'[Context Summary',
|
|
13
|
+
'[Previous session ended',
|
|
14
|
+
'[Earlier conversation was truncated',
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* Walk history backward and collect up to `maxMessages` user-role text strings.
|
|
18
|
+
* Skips system-injected boundary messages (context summaries, session markers).
|
|
19
|
+
* Returns texts in chronological order (oldest first).
|
|
20
|
+
*/
|
|
21
|
+
function extractRecentUserTexts(history, maxMessages = exports.DEFAULT_WINDOW_SIZE) {
|
|
22
|
+
const texts = [];
|
|
23
|
+
for (let i = history.length - 1; i >= 0 && texts.length < maxMessages; i--) {
|
|
24
|
+
const msg = history[i];
|
|
25
|
+
if (msg.role !== 'user')
|
|
26
|
+
continue;
|
|
27
|
+
const text = (0, context_js_1.extractText)(msg);
|
|
28
|
+
if (!text)
|
|
29
|
+
continue;
|
|
30
|
+
// Skip system-injected boundary messages
|
|
31
|
+
if (BOUNDARY_PREFIXES.some((prefix) => text.startsWith(prefix)))
|
|
32
|
+
continue;
|
|
33
|
+
texts.push(text);
|
|
34
|
+
}
|
|
35
|
+
// Reverse to chronological order (oldest first)
|
|
36
|
+
texts.reverse();
|
|
37
|
+
return texts;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build a RAG search query from the current user input plus recent history.
|
|
41
|
+
* Current input is always at the end (transformers attend more to later tokens).
|
|
42
|
+
* Truncates older messages first to stay within the character budget.
|
|
43
|
+
*/
|
|
44
|
+
function buildRAGQuery(currentInput, recentUserTexts, options) {
|
|
45
|
+
const maxChars = options?.maxQueryChars ?? exports.DEFAULT_MAX_QUERY_CHARS;
|
|
46
|
+
if (recentUserTexts.length === 0)
|
|
47
|
+
return currentInput.slice(0, maxChars);
|
|
48
|
+
// Always preserve current input (truncate if alone it exceeds budget)
|
|
49
|
+
const current = currentInput.slice(0, maxChars);
|
|
50
|
+
let remaining = maxChars - current.length - 2; // -2 for ". " separator
|
|
51
|
+
if (remaining <= 0)
|
|
52
|
+
return current;
|
|
53
|
+
// Add older messages from most-recent to oldest, truncating older ones first
|
|
54
|
+
const parts = [];
|
|
55
|
+
for (let i = recentUserTexts.length - 1; i >= 0; i--) {
|
|
56
|
+
const text = recentUserTexts[i];
|
|
57
|
+
if (remaining <= 0)
|
|
58
|
+
break;
|
|
59
|
+
const truncated = text.slice(0, remaining);
|
|
60
|
+
parts.unshift(truncated);
|
|
61
|
+
remaining -= truncated.length + 2; // -2 for ". " separator between parts
|
|
62
|
+
}
|
|
63
|
+
return [...parts, current].join('. ');
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Boost similarity scores for facts that appeared in the previous turn's results.
|
|
67
|
+
* Re-sorts by boosted similarity and re-applies domain top-k and total cap.
|
|
68
|
+
* Boost is NOT cumulative — only relative to the immediately prior turn.
|
|
69
|
+
*/
|
|
70
|
+
function applyStickiness(currentResults, previousFacts, options) {
|
|
71
|
+
if (previousFacts.size === 0)
|
|
72
|
+
return currentResults;
|
|
73
|
+
const boost = options?.boost ?? exports.DEFAULT_STICKINESS_BOOST;
|
|
74
|
+
const topKPerDomain = options?.topKPerDomain ?? 3;
|
|
75
|
+
const maxResults = options?.maxResults ?? 9;
|
|
76
|
+
// Apply boost
|
|
77
|
+
const boosted = currentResults.map((r) => ({
|
|
78
|
+
...r,
|
|
79
|
+
similarity: previousFacts.has(r.fact)
|
|
80
|
+
? Math.min(r.similarity + boost, 1.0)
|
|
81
|
+
: r.similarity,
|
|
82
|
+
}));
|
|
83
|
+
// Re-sort by boosted similarity
|
|
84
|
+
boosted.sort((a, b) => b.similarity - a.similarity);
|
|
85
|
+
// Re-apply domain top-k
|
|
86
|
+
const domainCounts = new Map();
|
|
87
|
+
const filtered = [];
|
|
88
|
+
for (const result of boosted) {
|
|
89
|
+
const count = domainCounts.get(result.domain) ?? 0;
|
|
90
|
+
if (count >= topKPerDomain)
|
|
91
|
+
continue;
|
|
92
|
+
domainCounts.set(result.domain, count + 1);
|
|
93
|
+
filtered.push(result);
|
|
94
|
+
if (filtered.length >= maxResults)
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
return filtered;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=rag-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../src/rag-query.ts"],"names":[],"mappings":"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"}
|
package/dist/rag-worker.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Invoked as: node dist/rag-worker.js <tempfile>
|
|
5
5
|
*
|
|
6
6
|
* Reads a JSON temp file containing { serialized, provider, model },
|
|
7
|
-
* extracts facts via LLM, stores them in RAGStore, then cleans up.
|
|
7
|
+
* extracts facts via LLM (domain-specific), stores them in RAGStore, then cleans up.
|
|
8
8
|
* Runs detached from the parent process — silent failure is fine.
|
|
9
9
|
*/
|
|
10
10
|
export {};
|
package/dist/rag-worker.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Invoked as: node dist/rag-worker.js <tempfile>
|
|
6
6
|
*
|
|
7
7
|
* Reads a JSON temp file containing { serialized, provider, model },
|
|
8
|
-
* extracts facts via LLM, stores them in RAGStore, then cleans up.
|
|
8
|
+
* extracts facts via LLM (domain-specific), stores them in RAGStore, then cleans up.
|
|
9
9
|
* Runs detached from the parent process — silent failure is fine.
|
|
10
10
|
*/
|
|
11
11
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -65,12 +65,15 @@ async function main() {
|
|
|
65
65
|
}
|
|
66
66
|
// Load config (reads .env + stored keys), override provider/model from temp file
|
|
67
67
|
const config = (0, config_js_1.loadConfig)({ provider: payload.provider, model: payload.model });
|
|
68
|
-
// Extract facts via LLM
|
|
69
|
-
const
|
|
70
|
-
// Store facts if any were extracted
|
|
71
|
-
|
|
68
|
+
// Extract facts via LLM (domain-specific)
|
|
69
|
+
const domainFacts = await (0, context_js_1.extractDomainFacts)(payload.serialized, config);
|
|
70
|
+
// Store facts per domain if any were extracted
|
|
71
|
+
const totalFacts = domainFacts.reduce((sum, df) => sum + df.facts.length, 0);
|
|
72
|
+
if (totalFacts > 0) {
|
|
72
73
|
const ragStore = new rag_js_1.RAGStore();
|
|
73
|
-
|
|
74
|
+
for (const df of domainFacts) {
|
|
75
|
+
await ragStore.addFacts(df.facts, 'exit', df.domain);
|
|
76
|
+
}
|
|
74
77
|
}
|
|
75
78
|
// Clean up temp file
|
|
76
79
|
try {
|
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,
|
|
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;AAQpC,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
|
@@ -3,6 +3,7 @@ export interface RAGMemory {
|
|
|
3
3
|
fact: string;
|
|
4
4
|
embedding: number[];
|
|
5
5
|
source: string;
|
|
6
|
+
domain: string;
|
|
6
7
|
createdAt: string;
|
|
7
8
|
accessCount: number;
|
|
8
9
|
lastAccessed?: string;
|
|
@@ -10,15 +11,26 @@ export interface RAGMemory {
|
|
|
10
11
|
export interface RAGSearchResult {
|
|
11
12
|
fact: string;
|
|
12
13
|
similarity: number;
|
|
14
|
+
domain: string;
|
|
15
|
+
}
|
|
16
|
+
export interface RAGSearchResultWithId {
|
|
17
|
+
id: string;
|
|
18
|
+
fact: string;
|
|
19
|
+
similarity: number;
|
|
20
|
+
domain: string;
|
|
21
|
+
createdAt: string;
|
|
22
|
+
accessCount: number;
|
|
13
23
|
}
|
|
14
24
|
export interface RAGStoreConfig {
|
|
15
|
-
|
|
25
|
+
topKPerDomain?: number;
|
|
26
|
+
maxResults?: number;
|
|
16
27
|
similarityThreshold?: number;
|
|
17
28
|
maxMemories?: number;
|
|
18
29
|
}
|
|
19
30
|
export declare class RAGStore {
|
|
20
31
|
private memories;
|
|
21
|
-
private
|
|
32
|
+
private topKPerDomain;
|
|
33
|
+
private maxResults;
|
|
22
34
|
private similarityThreshold;
|
|
23
35
|
private maxMemories;
|
|
24
36
|
constructor(config?: RAGStoreConfig);
|
|
@@ -28,10 +40,18 @@ export declare class RAGStore {
|
|
|
28
40
|
* Embed and store new facts. Deduplicates against existing memories.
|
|
29
41
|
* Returns the number of facts actually added.
|
|
30
42
|
*/
|
|
31
|
-
addFacts(facts: string[], source: string): Promise<number>;
|
|
43
|
+
addFacts(facts: string[], source: string, domain?: string): Promise<number>;
|
|
44
|
+
/**
|
|
45
|
+
* Score, group by domain (top-k per domain), and cap at maxResults.
|
|
46
|
+
* Shared by search() and searchWithIds().
|
|
47
|
+
*/
|
|
48
|
+
private scoreAndRank;
|
|
49
|
+
/** Embed a query string, returning the embedding vector or null on failure. */
|
|
50
|
+
private embedQuery;
|
|
32
51
|
/**
|
|
33
52
|
* Search for memories relevant to the query.
|
|
34
|
-
*
|
|
53
|
+
* Per-domain top-k: takes up to topKPerDomain results per domain,
|
|
54
|
+
* then merges and caps at maxResults total.
|
|
35
55
|
*/
|
|
36
56
|
search(query: string): Promise<RAGSearchResult[]>;
|
|
37
57
|
/** List all facts as plain text lines. */
|
|
@@ -40,13 +60,24 @@ export declare class RAGStore {
|
|
|
40
60
|
clear(): void;
|
|
41
61
|
/** Total number of stored memories. */
|
|
42
62
|
count(): number;
|
|
63
|
+
/** Count memories grouped by domain. */
|
|
64
|
+
countByDomain(): Record<string, number>;
|
|
65
|
+
/**
|
|
66
|
+
* Search for memories relevant to the query, returning rich metadata.
|
|
67
|
+
* Same scoring/grouping/capping as search() but does NOT update access metadata.
|
|
68
|
+
*/
|
|
69
|
+
searchWithIds(query: string): Promise<RAGSearchResultWithId[]>;
|
|
70
|
+
/** Return all memories as RAGSearchResultWithId (similarity=1.0 placeholder). */
|
|
71
|
+
listMemories(): RAGSearchResultWithId[];
|
|
72
|
+
/** Delete memories by ID. Returns the number of memories deleted. */
|
|
73
|
+
deleteByIds(ids: string[]): number;
|
|
43
74
|
/**
|
|
44
75
|
* Prune memories if over the cap.
|
|
45
76
|
* Score = recency decay (half-life 90 days) + log2(accessCount + 1)
|
|
46
77
|
* Keeps top N by score.
|
|
47
78
|
*/
|
|
48
79
|
private prune;
|
|
49
|
-
/** Load memories from disk. */
|
|
80
|
+
/** Load memories from disk. Backfills 'general' domain for legacy entries. */
|
|
50
81
|
private load;
|
|
51
82
|
/** Persist memories to disk atomically (write to tmp, then rename). */
|
|
52
83
|
private persist;
|
package/dist/rag.js
CHANGED
|
@@ -39,9 +39,11 @@ const path = __importStar(require("node:path"));
|
|
|
39
39
|
const os = __importStar(require("node:os"));
|
|
40
40
|
const embeddings_js_1 = require("./embeddings.js");
|
|
41
41
|
const logger_js_1 = require("./logger.js");
|
|
42
|
+
const domains_js_1 = require("./domains.js");
|
|
42
43
|
const RAG_DIR = path.join(os.homedir(), '.bernard', 'rag');
|
|
43
44
|
const MEMORIES_FILE = path.join(RAG_DIR, 'memories.json');
|
|
44
|
-
const
|
|
45
|
+
const DEFAULT_TOP_K_PER_DOMAIN = 3;
|
|
46
|
+
const DEFAULT_MAX_RESULTS = 9;
|
|
45
47
|
const DEFAULT_SIMILARITY_THRESHOLD = 0.35;
|
|
46
48
|
const DEFAULT_MAX_MEMORIES = 5000;
|
|
47
49
|
const DEDUP_THRESHOLD = 0.92;
|
|
@@ -49,11 +51,13 @@ const PRUNE_HALF_LIFE_DAYS = 90;
|
|
|
49
51
|
const STALE_TEMP_MAX_AGE_MS = 60 * 60 * 1000; // 1 hour
|
|
50
52
|
class RAGStore {
|
|
51
53
|
memories = [];
|
|
52
|
-
|
|
54
|
+
topKPerDomain;
|
|
55
|
+
maxResults;
|
|
53
56
|
similarityThreshold;
|
|
54
57
|
maxMemories;
|
|
55
58
|
constructor(config) {
|
|
56
|
-
this.
|
|
59
|
+
this.topKPerDomain = config?.topKPerDomain ?? DEFAULT_TOP_K_PER_DOMAIN;
|
|
60
|
+
this.maxResults = config?.maxResults ?? DEFAULT_MAX_RESULTS;
|
|
57
61
|
this.similarityThreshold = config?.similarityThreshold ?? DEFAULT_SIMILARITY_THRESHOLD;
|
|
58
62
|
this.maxMemories = config?.maxMemories ?? DEFAULT_MAX_MEMORIES;
|
|
59
63
|
fs.mkdirSync(RAG_DIR, { recursive: true });
|
|
@@ -89,7 +93,7 @@ class RAGStore {
|
|
|
89
93
|
* Embed and store new facts. Deduplicates against existing memories.
|
|
90
94
|
* Returns the number of facts actually added.
|
|
91
95
|
*/
|
|
92
|
-
async addFacts(facts, source) {
|
|
96
|
+
async addFacts(facts, source, domain = domains_js_1.DEFAULT_DOMAIN) {
|
|
93
97
|
if (facts.length === 0)
|
|
94
98
|
return 0;
|
|
95
99
|
const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
|
|
@@ -99,7 +103,7 @@ class RAGStore {
|
|
|
99
103
|
}
|
|
100
104
|
let embeddings;
|
|
101
105
|
try {
|
|
102
|
-
embeddings = await provider.embed(facts);
|
|
106
|
+
embeddings = (await provider.embed(facts)).map((e) => Array.from(e));
|
|
103
107
|
}
|
|
104
108
|
catch (err) {
|
|
105
109
|
(0, logger_js_1.debugLog)('rag:addFacts', `Embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -121,6 +125,7 @@ class RAGStore {
|
|
|
121
125
|
fact,
|
|
122
126
|
embedding,
|
|
123
127
|
source,
|
|
128
|
+
domain,
|
|
124
129
|
createdAt: now,
|
|
125
130
|
accessCount: 0,
|
|
126
131
|
});
|
|
@@ -130,55 +135,81 @@ class RAGStore {
|
|
|
130
135
|
this.prune();
|
|
131
136
|
this.persist();
|
|
132
137
|
}
|
|
133
|
-
(0, logger_js_1.debugLog)('rag:addFacts', { added, total: this.memories.length });
|
|
138
|
+
(0, logger_js_1.debugLog)('rag:addFacts', { added, total: this.memories.length, domain });
|
|
134
139
|
return added;
|
|
135
140
|
}
|
|
136
141
|
/**
|
|
137
|
-
*
|
|
138
|
-
*
|
|
142
|
+
* Score, group by domain (top-k per domain), and cap at maxResults.
|
|
143
|
+
* Shared by search() and searchWithIds().
|
|
139
144
|
*/
|
|
140
|
-
|
|
141
|
-
if (this.memories.length === 0)
|
|
142
|
-
return [];
|
|
143
|
-
const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
|
|
144
|
-
if (!provider)
|
|
145
|
-
return [];
|
|
146
|
-
let queryEmbedding;
|
|
147
|
-
try {
|
|
148
|
-
const embeddings = await provider.embed([query]);
|
|
149
|
-
queryEmbedding = embeddings[0];
|
|
150
|
-
}
|
|
151
|
-
catch (err) {
|
|
152
|
-
(0, logger_js_1.debugLog)('rag:search', `Query embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
153
|
-
return [];
|
|
154
|
-
}
|
|
145
|
+
scoreAndRank(queryEmbedding) {
|
|
155
146
|
const scored = this.memories
|
|
156
147
|
.map((m) => ({
|
|
157
148
|
memory: m,
|
|
158
149
|
similarity: (0, embeddings_js_1.cosineSimilarity)(queryEmbedding, m.embedding),
|
|
159
150
|
}))
|
|
160
151
|
.filter((s) => s.similarity >= this.similarityThreshold)
|
|
161
|
-
.sort((a, b) => b.similarity - a.similarity)
|
|
162
|
-
|
|
152
|
+
.sort((a, b) => b.similarity - a.similarity);
|
|
153
|
+
const byDomain = new Map();
|
|
154
|
+
for (const entry of scored) {
|
|
155
|
+
const d = entry.memory.domain;
|
|
156
|
+
if (!byDomain.has(d))
|
|
157
|
+
byDomain.set(d, []);
|
|
158
|
+
const group = byDomain.get(d);
|
|
159
|
+
if (group.length < this.topKPerDomain) {
|
|
160
|
+
group.push(entry);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const merged = Array.from(byDomain.values()).flat();
|
|
164
|
+
merged.sort((a, b) => b.similarity - a.similarity);
|
|
165
|
+
return merged.slice(0, this.maxResults);
|
|
166
|
+
}
|
|
167
|
+
/** Embed a query string, returning the embedding vector or null on failure. */
|
|
168
|
+
async embedQuery(query, logLabel) {
|
|
169
|
+
const provider = await (0, embeddings_js_1.getEmbeddingProvider)();
|
|
170
|
+
if (!provider)
|
|
171
|
+
return null;
|
|
172
|
+
try {
|
|
173
|
+
return Array.from((await provider.embed([query]))[0]);
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
(0, logger_js_1.debugLog)(logLabel, `Query embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Search for memories relevant to the query.
|
|
182
|
+
* Per-domain top-k: takes up to topKPerDomain results per domain,
|
|
183
|
+
* then merges and caps at maxResults total.
|
|
184
|
+
*/
|
|
185
|
+
async search(query) {
|
|
186
|
+
if (this.memories.length === 0)
|
|
187
|
+
return [];
|
|
188
|
+
const queryEmbedding = await this.embedQuery(query, 'rag:search');
|
|
189
|
+
if (!queryEmbedding)
|
|
190
|
+
return [];
|
|
191
|
+
const capped = this.scoreAndRank(queryEmbedding);
|
|
192
|
+
(0, logger_js_1.debugLog)('rag:search', { query: query.slice(0, 100), returned: capped.length });
|
|
163
193
|
// Update access metadata
|
|
164
194
|
const now = new Date().toISOString();
|
|
165
|
-
for (const { memory } of
|
|
195
|
+
for (const { memory } of capped) {
|
|
166
196
|
memory.accessCount++;
|
|
167
197
|
memory.lastAccessed = now;
|
|
168
198
|
}
|
|
169
|
-
if (
|
|
199
|
+
if (capped.length > 0) {
|
|
170
200
|
this.persist();
|
|
171
201
|
}
|
|
172
|
-
return
|
|
202
|
+
return capped.map((s) => ({
|
|
173
203
|
fact: s.memory.fact,
|
|
174
204
|
similarity: s.similarity,
|
|
205
|
+
domain: s.memory.domain,
|
|
175
206
|
}));
|
|
176
207
|
}
|
|
177
208
|
/** List all facts as plain text lines. */
|
|
178
209
|
listFacts() {
|
|
179
210
|
return this.memories.map((m) => {
|
|
180
211
|
const date = m.createdAt.slice(0, 10);
|
|
181
|
-
return `[${date}] (accessed ${m.accessCount}x) ${m.fact}`;
|
|
212
|
+
return `[${date}] [${m.domain}] (accessed ${m.accessCount}x) ${m.fact}`;
|
|
182
213
|
});
|
|
183
214
|
}
|
|
184
215
|
/** Clear all memories. */
|
|
@@ -190,6 +221,56 @@ class RAGStore {
|
|
|
190
221
|
count() {
|
|
191
222
|
return this.memories.length;
|
|
192
223
|
}
|
|
224
|
+
/** Count memories grouped by domain. */
|
|
225
|
+
countByDomain() {
|
|
226
|
+
const counts = {};
|
|
227
|
+
for (const m of this.memories) {
|
|
228
|
+
counts[m.domain] = (counts[m.domain] ?? 0) + 1;
|
|
229
|
+
}
|
|
230
|
+
return counts;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Search for memories relevant to the query, returning rich metadata.
|
|
234
|
+
* Same scoring/grouping/capping as search() but does NOT update access metadata.
|
|
235
|
+
*/
|
|
236
|
+
async searchWithIds(query) {
|
|
237
|
+
if (this.memories.length === 0)
|
|
238
|
+
return [];
|
|
239
|
+
const queryEmbedding = await this.embedQuery(query, 'rag:searchWithIds');
|
|
240
|
+
if (!queryEmbedding)
|
|
241
|
+
return [];
|
|
242
|
+
const capped = this.scoreAndRank(queryEmbedding);
|
|
243
|
+
return capped.map((s) => ({
|
|
244
|
+
id: s.memory.id,
|
|
245
|
+
fact: s.memory.fact,
|
|
246
|
+
similarity: s.similarity,
|
|
247
|
+
domain: s.memory.domain,
|
|
248
|
+
createdAt: s.memory.createdAt,
|
|
249
|
+
accessCount: s.memory.accessCount,
|
|
250
|
+
}));
|
|
251
|
+
}
|
|
252
|
+
/** Return all memories as RAGSearchResultWithId (similarity=1.0 placeholder). */
|
|
253
|
+
listMemories() {
|
|
254
|
+
return this.memories.map((m) => ({
|
|
255
|
+
id: m.id,
|
|
256
|
+
fact: m.fact,
|
|
257
|
+
similarity: 1.0,
|
|
258
|
+
domain: m.domain,
|
|
259
|
+
createdAt: m.createdAt,
|
|
260
|
+
accessCount: m.accessCount,
|
|
261
|
+
}));
|
|
262
|
+
}
|
|
263
|
+
/** Delete memories by ID. Returns the number of memories deleted. */
|
|
264
|
+
deleteByIds(ids) {
|
|
265
|
+
const idSet = new Set(ids);
|
|
266
|
+
const before = this.memories.length;
|
|
267
|
+
this.memories = this.memories.filter((m) => !idSet.has(m.id));
|
|
268
|
+
const deleted = before - this.memories.length;
|
|
269
|
+
if (deleted > 0) {
|
|
270
|
+
this.persist();
|
|
271
|
+
}
|
|
272
|
+
return deleted;
|
|
273
|
+
}
|
|
193
274
|
/**
|
|
194
275
|
* Prune memories if over the cap.
|
|
195
276
|
* Score = recency decay (half-life 90 days) + log2(accessCount + 1)
|
|
@@ -210,7 +291,7 @@ class RAGStore {
|
|
|
210
291
|
this.memories = scored.slice(0, this.maxMemories).map((s) => s.memory);
|
|
211
292
|
(0, logger_js_1.debugLog)('rag:prune', { kept: this.memories.length });
|
|
212
293
|
}
|
|
213
|
-
/** Load memories from disk. */
|
|
294
|
+
/** Load memories from disk. Backfills 'general' domain for legacy entries. */
|
|
214
295
|
load() {
|
|
215
296
|
try {
|
|
216
297
|
if (!fs.existsSync(MEMORIES_FILE))
|
|
@@ -218,7 +299,13 @@ class RAGStore {
|
|
|
218
299
|
const data = fs.readFileSync(MEMORIES_FILE, 'utf-8');
|
|
219
300
|
const parsed = JSON.parse(data);
|
|
220
301
|
if (Array.isArray(parsed)) {
|
|
221
|
-
this.memories = parsed
|
|
302
|
+
this.memories = parsed.map((m) => ({
|
|
303
|
+
...m,
|
|
304
|
+
domain: m.domain ?? domains_js_1.DEFAULT_DOMAIN,
|
|
305
|
+
embedding: Array.isArray(m.embedding)
|
|
306
|
+
? m.embedding
|
|
307
|
+
: Object.values(m.embedding),
|
|
308
|
+
}));
|
|
222
309
|
}
|
|
223
310
|
}
|
|
224
311
|
catch (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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"}
|