@framers/agentos 0.1.251 → 0.1.253
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/dist/core/llm/routing/UncensoredModelCatalog.d.ts.map +1 -1
- package/dist/core/llm/routing/UncensoredModelCatalog.js +19 -19
- package/dist/core/llm/routing/UncensoredModelCatalog.js.map +1 -1
- package/dist/memory/core/types.d.ts +1 -1
- package/dist/memory/core/types.d.ts.map +1 -1
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +6 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/retrieval/fact-graph/FactExtractor.d.ts +48 -0
- package/dist/memory/retrieval/fact-graph/FactExtractor.d.ts.map +1 -0
- package/dist/memory/retrieval/fact-graph/FactExtractor.js +107 -0
- package/dist/memory/retrieval/fact-graph/FactExtractor.js.map +1 -0
- package/dist/memory/retrieval/fact-graph/FactStore.d.ts +37 -0
- package/dist/memory/retrieval/fact-graph/FactStore.d.ts.map +1 -0
- package/dist/memory/retrieval/fact-graph/FactStore.js +77 -0
- package/dist/memory/retrieval/fact-graph/FactStore.js.map +1 -0
- package/dist/memory/retrieval/fact-graph/canonicalization.d.ts +31 -0
- package/dist/memory/retrieval/fact-graph/canonicalization.d.ts.map +1 -0
- package/dist/memory/retrieval/fact-graph/canonicalization.js +78 -0
- package/dist/memory/retrieval/fact-graph/canonicalization.js.map +1 -0
- package/dist/memory/retrieval/fact-graph/index.d.ts +10 -0
- package/dist/memory/retrieval/fact-graph/index.d.ts.map +1 -0
- package/dist/memory/retrieval/fact-graph/index.js +8 -0
- package/dist/memory/retrieval/fact-graph/index.js.map +1 -0
- package/dist/memory/retrieval/fact-graph/types.d.ts +38 -0
- package/dist/memory/retrieval/fact-graph/types.d.ts.map +1 -0
- package/dist/memory/retrieval/fact-graph/types.js +10 -0
- package/dist/memory/retrieval/fact-graph/types.js.map +1 -0
- package/dist/memory/retrieval/hybrid/HybridRetriever.d.ts +54 -0
- package/dist/memory/retrieval/hybrid/HybridRetriever.d.ts.map +1 -1
- package/dist/memory/retrieval/hybrid/HybridRetriever.js +145 -3
- package/dist/memory/retrieval/hybrid/HybridRetriever.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UncensoredModelCatalog.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/routing/UncensoredModelCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE1E,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAMrF,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,iDAAiD;IACjD,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,gEAAgE;IAChE,kBAAkB,EAAE,aAAa,EAAE,CAAC;IACpC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAClC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;KACtC,GAAG,YAAY,EAAE,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,EAAE,CAAC;IAErE;;;;;OAKG;IACH,qBAAqB,CACnB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,aAAa,GAC5B,YAAY,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,YAAY,GAAG,IAAI,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"UncensoredModelCatalog.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/routing/UncensoredModelCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE1E,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAMrF,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,iDAAiD;IACjD,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,gEAAgE;IAChE,kBAAkB,EAAE,aAAa,EAAE,CAAC;IACpC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAClC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;KACtC,GAAG,YAAY,EAAE,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,EAAE,CAAC;IAErE;;;;;OAKG;IACH,qBAAqB,CACnB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,aAAa,GAC5B,YAAY,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,YAAY,GAAG,IAAI,CAAC;CACxB;AAwHD;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CA0GrE"}
|
|
@@ -49,20 +49,19 @@ const TEXT_MODELS = [
|
|
|
49
49
|
// returns "No endpoints found" on every call. Same story: pure
|
|
50
50
|
// latency in the fallback path with no functional benefit. If the
|
|
51
51
|
// upstream fixes its catalog, re-add with the same config.
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
52
|
+
// Removed `gryphe/mythomax-l2-13b` on 2026-04-21. The coherence
|
|
53
|
+
// gate caught its SQL/DAX training-data leaks but not its other
|
|
54
|
+
// failure modes: classical-literature rambling (triggered on
|
|
55
|
+
// "Avoiding the direct question, Remarks to the curious, as I
|
|
56
|
+
// recall... Greek, Roman, and Norse writers, from Homer's epics to
|
|
57
|
+
// Ovid's myths..."), fantasy-farewell slop ("we might meet in
|
|
58
|
+
// another life, another world. Until then, I must return to the
|
|
59
|
+
// shadows of history, and you to your mortal realm. Farewell.")
|
|
60
|
+
// and occasional Devanagari token corruption. All surfaced in
|
|
61
|
+
// production as Cleopatra VII responses and made a $10 companion
|
|
62
|
+
// chat look like a broken chatbot demo. The last two candidates
|
|
63
|
+
// (Hermes 405B + 70B) handle the refusal-retry path fine; Haiku
|
|
64
|
+
// last-resort catches anything they miss.
|
|
66
65
|
];
|
|
67
66
|
/** Curated image models available via Replicate. */
|
|
68
67
|
const IMAGE_MODELS = [
|
|
@@ -164,11 +163,12 @@ export function createUncensoredModelCatalog() {
|
|
|
164
163
|
const preferred = [
|
|
165
164
|
'nousresearch/hermes-3-llama-3.1-405b',
|
|
166
165
|
'nousresearch/hermes-3-llama-3.1-70b',
|
|
167
|
-
// Dolphin Mixtral 8x22B
|
|
168
|
-
//
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
|
-
|
|
166
|
+
// Dolphin Mixtral 8x22B, Dolphin 3.0 8B, and MythoMax L2 13B
|
|
167
|
+
// are all removed from the live catalog — the first two are
|
|
168
|
+
// gone from OpenRouter, MythoMax was producing classical-
|
|
169
|
+
// literature rambling and fantasy-farewell slop that shipped
|
|
170
|
+
// to users. See the CATALOG_ENTRIES array for the full
|
|
171
|
+
// removal rationale.
|
|
172
172
|
];
|
|
173
173
|
candidates.sort((a, b) => {
|
|
174
174
|
const aIdx = preferred.indexOf(a.modelId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UncensoredModelCatalog.js","sourceRoot":"","sources":["../../../../src/core/llm/routing/UncensoredModelCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8EH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,WAAW,GAAmB;IAClC;QACE,OAAO,EAAE,sCAAsC;QAC/C,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM;QACf,kBAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC1E,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;KAChD;IACD;QACE,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM;QACf,kBAAkB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC1E,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;KAChD;IACD,sEAAsE;IACtE,mEAAmE;IACnE,iEAAiE;IACjE,sCAAsC;IACtC,qEAAqE;IACrE,+DAA+D;IAC/D,kEAAkE;IAClE,2DAA2D;IAC3D,
|
|
1
|
+
{"version":3,"file":"UncensoredModelCatalog.js","sourceRoot":"","sources":["../../../../src/core/llm/routing/UncensoredModelCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export type MemoryType = 'episodic' | 'semantic' | 'procedural' | 'prospective'
|
|
|
17
17
|
/** Visibility / ownership scope for a memory trace. */
|
|
18
18
|
export type MemoryScope = 'thread' | 'user' | 'persona' | 'organization';
|
|
19
19
|
/** How the content of this memory was originally produced. */
|
|
20
|
-
export type MemorySourceType = 'user_statement' | 'agent_inference' | 'tool_result' | 'observation' | 'reflection' | 'external';
|
|
20
|
+
export type MemorySourceType = 'user_statement' | 'agent_inference' | 'tool_result' | 'observation' | 'reflection' | 'external' | 'fact_graph';
|
|
21
21
|
export interface MemoryProvenance {
|
|
22
22
|
sourceType: MemorySourceType;
|
|
23
23
|
/** Back-reference to originating conversation, tool call, etc. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;;;;GAWG;AAMH,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAE/F,uDAAuD;AACvD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;AAEzE,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/index.d.ts
CHANGED
|
@@ -55,6 +55,9 @@ export { HybridRetriever } from './retrieval/hybrid/HybridRetriever.js';
|
|
|
55
55
|
export type { HybridRetrieverOptions, HybridRetrieveOptions, } from './retrieval/hybrid/HybridRetriever.js';
|
|
56
56
|
export { reciprocalRankFusion } from './retrieval/hybrid/reciprocalRankFusion.js';
|
|
57
57
|
export type { RankedDoc, RRFOptions, RRFResult, } from './retrieval/hybrid/reciprocalRankFusion.js';
|
|
58
|
+
export { FactStore, FactExtractor } from './retrieval/fact-graph/index.js';
|
|
59
|
+
export type { Fact, FactStoreEntry, FactExtractorOptions, FactExtractorSession, } from './retrieval/fact-graph/index.js';
|
|
60
|
+
export { canonicalizeSubject, hashSubject, hashPredicate, isValidPredicate, PREDICATE_SCHEMA, } from './retrieval/fact-graph/index.js';
|
|
58
61
|
export { ObservationBuffer } from './pipeline/observation/ObservationBuffer.js';
|
|
59
62
|
export type { BufferedMessage, ObservationBufferConfig } from './pipeline/observation/ObservationBuffer.js';
|
|
60
63
|
export { MemoryObserver } from './pipeline/observation/MemoryObserver.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/index.js
CHANGED
|
@@ -68,6 +68,12 @@ export { SessionRetriever } from './retrieval/session/SessionRetriever.js';
|
|
|
68
68
|
// specific-value questions) that pure semantic embedding misses.
|
|
69
69
|
export { HybridRetriever } from './retrieval/hybrid/HybridRetriever.js';
|
|
70
70
|
export { reciprocalRankFusion } from './retrieval/hybrid/reciprocalRankFusion.js';
|
|
71
|
+
// --- Fact-graph (Step 9, Mem0-style tuple extraction) ---
|
|
72
|
+
// Closed-schema LLM fact extraction + in-memory FactStore keyed by
|
|
73
|
+
// (scope, subject, predicate). Preserves literal object tokens where
|
|
74
|
+
// summary-based approaches (Steps 5, 7, 8) erased them.
|
|
75
|
+
export { FactStore, FactExtractor } from './retrieval/fact-graph/index.js';
|
|
76
|
+
export { canonicalizeSubject, hashSubject, hashPredicate, isValidPredicate, PREDICATE_SCHEMA, } from './retrieval/fact-graph/index.js';
|
|
71
77
|
// --- Observation System ---
|
|
72
78
|
export { ObservationBuffer } from './pipeline/observation/ObservationBuffer.js';
|
|
73
79
|
export { MemoryObserver } from './pipeline/observation/MemoryObserver.js';
|
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwCH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,2CAA2C,CAAC;AAGnD,gBAAgB;AAChB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AAQjD,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAGlF,0BAA0B;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAG1F,6CAA6C;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,yBAAyB;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAgD,MAAM,kCAAkC,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAY3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,6BAA6B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAM/F,6BAA6B;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,mDAAmD;AACnD,yEAAyE;AACzE,oEAAoE;AACpE,qEAAqE;AACrE,mEAAmE;AACnE,yEAAyE;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,wDAAwD;AACxD,uEAAuE;AACvE,uEAAuE;AACvE,iEAAiE;AACjE,kEAAkE;AAClE,yCAAyC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAMjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAM3E,iDAAiD;AACjD,qEAAqE;AACrE,qEAAqE;AACrE,qEAAqE;AACrE,iEAAiE;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAOlF,6BAA6B;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAG5E,+CAA+C;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAKxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAGtF,6BAA6B;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,iCAAiC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAM1F,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,kCAAkC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAKlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAYjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAE9E,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,oEAAoE;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAyBtE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,6BAA6B;AAC7B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAIhD,oCAAoC;AACpC,OAAO,EACL,mCAAmC,EACnC,uCAAuC,EACvC,wCAAwC,GACzC,MAAM,4CAA4C,CAAC;AAMpD,wBAAwB;AACxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB;AAChB,sFAAsF;AACtF,0DAA0D;AAC1D,eAAe,EACf,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,aAAa,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAQjF,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAQ/C,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FactExtractor.ts
|
|
3
|
+
* @description LLM-driven fact extraction. Turns a session's turns into
|
|
4
|
+
* `Fact[]` using the closed 25-predicate schema and literal-object
|
|
5
|
+
* preservation contract (see Step 9 design spec §4.3).
|
|
6
|
+
*
|
|
7
|
+
* Cache: in-memory keyed by SHA-256(fingerprint | session-content). At
|
|
8
|
+
* LongMemEval-S scale (~50 sessions per case, many shared across cases)
|
|
9
|
+
* this amortizes to ~4 LLM calls per case after warmup. Fingerprint
|
|
10
|
+
* bump (`:v1` → `:v2`) invalidates the cache for prompt/schema
|
|
11
|
+
* iterations.
|
|
12
|
+
*
|
|
13
|
+
* @module agentos/memory/retrieval/fact-graph/FactExtractor
|
|
14
|
+
*/
|
|
15
|
+
import type { Fact } from './types.js';
|
|
16
|
+
export interface FactExtractorSession {
|
|
17
|
+
sessionId: string;
|
|
18
|
+
/** ISO date — used as the fact timestamp. */
|
|
19
|
+
date: string;
|
|
20
|
+
turns: readonly {
|
|
21
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
22
|
+
content: string;
|
|
23
|
+
}[];
|
|
24
|
+
}
|
|
25
|
+
export interface FactExtractorOptions {
|
|
26
|
+
/** Called with (systemPrompt, userPrompt). Must return the model's text response. */
|
|
27
|
+
llmInvoker: (systemPrompt: string, userPrompt: string) => Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Fingerprint appended to the content hash for cache keying. Bump
|
|
30
|
+
* when the prompt or schema changes so prior-version extractions
|
|
31
|
+
* don't leak into new runs.
|
|
32
|
+
*/
|
|
33
|
+
cacheFingerprint: string;
|
|
34
|
+
/** Hard cap on LLM output tokens. Default 1024. */
|
|
35
|
+
maxOutputTokens?: number;
|
|
36
|
+
}
|
|
37
|
+
export declare class FactExtractor {
|
|
38
|
+
private readonly cache;
|
|
39
|
+
private readonly llmInvoker;
|
|
40
|
+
private readonly fingerprint;
|
|
41
|
+
private readonly maxOutputTokens;
|
|
42
|
+
constructor(opts: FactExtractorOptions);
|
|
43
|
+
extract(session: FactExtractorSession): Promise<Fact[]>;
|
|
44
|
+
private hashSession;
|
|
45
|
+
private buildUserPrompt;
|
|
46
|
+
private parseResponse;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=FactExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FactExtractor.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/FactExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvF;AAED,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,IAAI,EAAE,oBAAoB;IAMhC,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAa7D,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,aAAa;CAsCtB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FactExtractor.ts
|
|
3
|
+
* @description LLM-driven fact extraction. Turns a session's turns into
|
|
4
|
+
* `Fact[]` using the closed 25-predicate schema and literal-object
|
|
5
|
+
* preservation contract (see Step 9 design spec §4.3).
|
|
6
|
+
*
|
|
7
|
+
* Cache: in-memory keyed by SHA-256(fingerprint | session-content). At
|
|
8
|
+
* LongMemEval-S scale (~50 sessions per case, many shared across cases)
|
|
9
|
+
* this amortizes to ~4 LLM calls per case after warmup. Fingerprint
|
|
10
|
+
* bump (`:v1` → `:v2`) invalidates the cache for prompt/schema
|
|
11
|
+
* iterations.
|
|
12
|
+
*
|
|
13
|
+
* @module agentos/memory/retrieval/fact-graph/FactExtractor
|
|
14
|
+
*/
|
|
15
|
+
import { createHash } from 'node:crypto';
|
|
16
|
+
import { isValidPredicate } from './canonicalization.js';
|
|
17
|
+
const SYSTEM_PROMPT = `You extract structured facts from conversation turns.
|
|
18
|
+
|
|
19
|
+
Output JSON: an array of {subject, predicate, object, sourceSpan} objects.
|
|
20
|
+
|
|
21
|
+
Rules:
|
|
22
|
+
1. subject is a canonical entity (person name, organization, "user" for first-person).
|
|
23
|
+
2. predicate MUST be one of: prefers, dislikes, avoids, is, isNamed, identifiesAs,
|
|
24
|
+
livesIn, worksAt, studiesAt, ownsPet, drives, marriedTo, parentOf, friendOf,
|
|
25
|
+
colleagueOf, visited, attended, purchased, scheduled, allergicTo,
|
|
26
|
+
takesMedication, diagnosedWith, commitsTo, decidedOn, believes.
|
|
27
|
+
Skip facts that don't fit these predicates — do not invent new ones.
|
|
28
|
+
3. object MUST be a literal span from the turn. Copy the exact words the
|
|
29
|
+
speaker used. Do NOT paraphrase, generalize, or shorten.
|
|
30
|
+
4. sourceSpan is the full sentence the fact was extracted from.
|
|
31
|
+
5. If a turn contains no extractable fact, output an empty array for that turn.
|
|
32
|
+
6. Return only the JSON array. No prose.`;
|
|
33
|
+
export class FactExtractor {
|
|
34
|
+
constructor(opts) {
|
|
35
|
+
this.cache = new Map();
|
|
36
|
+
this.llmInvoker = opts.llmInvoker;
|
|
37
|
+
this.fingerprint = opts.cacheFingerprint;
|
|
38
|
+
this.maxOutputTokens = opts.maxOutputTokens ?? 1024;
|
|
39
|
+
}
|
|
40
|
+
async extract(session) {
|
|
41
|
+
const hash = this.hashSession(session);
|
|
42
|
+
const cached = this.cache.get(hash);
|
|
43
|
+
if (cached)
|
|
44
|
+
return cached;
|
|
45
|
+
const userPrompt = this.buildUserPrompt(session);
|
|
46
|
+
const raw = await this.llmInvoker(SYSTEM_PROMPT, userPrompt);
|
|
47
|
+
const parsed = this.parseResponse(raw, session);
|
|
48
|
+
this.cache.set(hash, parsed);
|
|
49
|
+
return parsed;
|
|
50
|
+
}
|
|
51
|
+
hashSession(session) {
|
|
52
|
+
const content = session.turns.map((t) => `${t.role}:${t.content}`).join('\n');
|
|
53
|
+
return createHash('sha256').update(`${this.fingerprint}|${content}`).digest('hex');
|
|
54
|
+
}
|
|
55
|
+
buildUserPrompt(session) {
|
|
56
|
+
return [
|
|
57
|
+
`Session ${session.sessionId} dated ${session.date}:`,
|
|
58
|
+
'',
|
|
59
|
+
...session.turns.map((t) => `${t.role}: ${t.content}`),
|
|
60
|
+
'',
|
|
61
|
+
'Extract facts as specified. Return only the JSON array.',
|
|
62
|
+
].join('\n');
|
|
63
|
+
}
|
|
64
|
+
parseResponse(raw, session) {
|
|
65
|
+
let payload;
|
|
66
|
+
try {
|
|
67
|
+
// Accept bare JSON arrays and code-fenced versions.
|
|
68
|
+
const cleaned = raw
|
|
69
|
+
.trim()
|
|
70
|
+
.replace(/^```(?:json)?/, '')
|
|
71
|
+
.replace(/```$/, '')
|
|
72
|
+
.trim();
|
|
73
|
+
payload = JSON.parse(cleaned);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
if (!Array.isArray(payload))
|
|
79
|
+
return [];
|
|
80
|
+
const parsedTs = Date.parse(session.date);
|
|
81
|
+
const safeTs = Number.isFinite(parsedTs) ? parsedTs : Date.now();
|
|
82
|
+
const out = [];
|
|
83
|
+
for (const item of payload) {
|
|
84
|
+
if (!item || typeof item !== 'object')
|
|
85
|
+
continue;
|
|
86
|
+
const rec = item;
|
|
87
|
+
const subject = typeof rec.subject === 'string' ? rec.subject : null;
|
|
88
|
+
const predicate = typeof rec.predicate === 'string' ? rec.predicate : null;
|
|
89
|
+
const object = typeof rec.object === 'string' ? rec.object : null;
|
|
90
|
+
const sourceSpan = typeof rec.sourceSpan === 'string' ? rec.sourceSpan : null;
|
|
91
|
+
if (!subject || !predicate || !object || !sourceSpan)
|
|
92
|
+
continue;
|
|
93
|
+
if (!isValidPredicate(predicate))
|
|
94
|
+
continue;
|
|
95
|
+
out.push({
|
|
96
|
+
subject,
|
|
97
|
+
predicate,
|
|
98
|
+
object,
|
|
99
|
+
timestamp: safeTs,
|
|
100
|
+
sourceTraceIds: [session.sessionId],
|
|
101
|
+
sourceSpan,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=FactExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FactExtractor.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/FactExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FactStore.ts
|
|
3
|
+
* @description In-memory `(scope, scopeId, subjectHash, predicateHash) →
|
|
4
|
+
* FactStoreEntry` map. Populated at session-ingest time by
|
|
5
|
+
* `FactExtractor`; queried from `HybridRetriever` at query time.
|
|
6
|
+
*
|
|
7
|
+
* The store is per-case-scoped (no cross-run persistence in MVP); callers
|
|
8
|
+
* that want persistent fact storage wire a SQLite-backed variant on top
|
|
9
|
+
* of the same interface in a follow-up.
|
|
10
|
+
*
|
|
11
|
+
* @module agentos/memory/retrieval/fact-graph/FactStore
|
|
12
|
+
*/
|
|
13
|
+
import type { Fact } from './types.js';
|
|
14
|
+
export declare class FactStore {
|
|
15
|
+
private readonly map;
|
|
16
|
+
private keyOf;
|
|
17
|
+
/**
|
|
18
|
+
* Insert facts. Facts with predicates outside the closed schema are
|
|
19
|
+
* silently dropped (matches the `FactExtractor` contract). Subjects
|
|
20
|
+
* are canonicalized; the stored form carries the canonical subject.
|
|
21
|
+
* Per-(subject, predicate) entries stay time-sorted ascending so
|
|
22
|
+
* {@link getLatest} is O(1) and {@link getAllTimeOrdered} is O(n).
|
|
23
|
+
*/
|
|
24
|
+
upsert(scope: string, scopeId: string, facts: readonly Fact[]): void;
|
|
25
|
+
/**
|
|
26
|
+
* Return the latest fact for (subject, predicate) or null. Supports
|
|
27
|
+
* un-canonicalized subject input (canonicalized internally). Returns
|
|
28
|
+
* null for predicates outside the closed schema.
|
|
29
|
+
*/
|
|
30
|
+
getLatest(scope: string, scopeId: string, subject: string, predicate: string): Fact | null;
|
|
31
|
+
/**
|
|
32
|
+
* Return ALL facts for a subject (across predicates), time-sorted
|
|
33
|
+
* ascending. Used for temporal queries where history matters.
|
|
34
|
+
*/
|
|
35
|
+
getAllTimeOrdered(scope: string, scopeId: string, subject: string): Fact[];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=FactStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FactStore.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/FactStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,YAAY,CAAC;AAQvD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqC;IAEzD,OAAO,CAAC,KAAK;IASb;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI;IAqBpE;;;;OAIG;IACH,SAAS,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,GAAG,IAAI;IAcd;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE;CAY3E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FactStore.ts
|
|
3
|
+
* @description In-memory `(scope, scopeId, subjectHash, predicateHash) →
|
|
4
|
+
* FactStoreEntry` map. Populated at session-ingest time by
|
|
5
|
+
* `FactExtractor`; queried from `HybridRetriever` at query time.
|
|
6
|
+
*
|
|
7
|
+
* The store is per-case-scoped (no cross-run persistence in MVP); callers
|
|
8
|
+
* that want persistent fact storage wire a SQLite-backed variant on top
|
|
9
|
+
* of the same interface in a follow-up.
|
|
10
|
+
*
|
|
11
|
+
* @module agentos/memory/retrieval/fact-graph/FactStore
|
|
12
|
+
*/
|
|
13
|
+
import { canonicalizeSubject, hashPredicate, hashSubject, isValidPredicate, } from './canonicalization.js';
|
|
14
|
+
export class FactStore {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.map = new Map();
|
|
17
|
+
}
|
|
18
|
+
keyOf(scope, scopeId, subjectHash, predicateHash) {
|
|
19
|
+
return `${scope}|${scopeId}|${subjectHash}|${predicateHash}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Insert facts. Facts with predicates outside the closed schema are
|
|
23
|
+
* silently dropped (matches the `FactExtractor` contract). Subjects
|
|
24
|
+
* are canonicalized; the stored form carries the canonical subject.
|
|
25
|
+
* Per-(subject, predicate) entries stay time-sorted ascending so
|
|
26
|
+
* {@link getLatest} is O(1) and {@link getAllTimeOrdered} is O(n).
|
|
27
|
+
*/
|
|
28
|
+
upsert(scope, scopeId, facts) {
|
|
29
|
+
for (const raw of facts) {
|
|
30
|
+
if (!isValidPredicate(raw.predicate))
|
|
31
|
+
continue;
|
|
32
|
+
const subject = canonicalizeSubject(raw.subject);
|
|
33
|
+
const fact = { ...raw, subject };
|
|
34
|
+
const key = this.keyOf(scope, scopeId, hashSubject(subject), hashPredicate(fact.predicate));
|
|
35
|
+
let entry = this.map.get(key);
|
|
36
|
+
if (!entry) {
|
|
37
|
+
entry = { facts: [] };
|
|
38
|
+
this.map.set(key, entry);
|
|
39
|
+
}
|
|
40
|
+
entry.facts.push(fact);
|
|
41
|
+
entry.facts.sort((a, b) => a.timestamp - b.timestamp);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Return the latest fact for (subject, predicate) or null. Supports
|
|
46
|
+
* un-canonicalized subject input (canonicalized internally). Returns
|
|
47
|
+
* null for predicates outside the closed schema.
|
|
48
|
+
*/
|
|
49
|
+
getLatest(scope, scopeId, subject, predicate) {
|
|
50
|
+
if (!isValidPredicate(predicate))
|
|
51
|
+
return null;
|
|
52
|
+
const canonicalSubject = canonicalizeSubject(subject);
|
|
53
|
+
const key = this.keyOf(scope, scopeId, hashSubject(canonicalSubject), hashPredicate(predicate));
|
|
54
|
+
const entry = this.map.get(key);
|
|
55
|
+
if (!entry || entry.facts.length === 0)
|
|
56
|
+
return null;
|
|
57
|
+
return entry.facts[entry.facts.length - 1];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Return ALL facts for a subject (across predicates), time-sorted
|
|
61
|
+
* ascending. Used for temporal queries where history matters.
|
|
62
|
+
*/
|
|
63
|
+
getAllTimeOrdered(scope, scopeId, subject) {
|
|
64
|
+
const canonicalSubject = canonicalizeSubject(subject);
|
|
65
|
+
const subjectHash = hashSubject(canonicalSubject);
|
|
66
|
+
const prefix = `${scope}|${scopeId}|${subjectHash}|`;
|
|
67
|
+
const out = [];
|
|
68
|
+
for (const [k, entry] of this.map) {
|
|
69
|
+
if (!k.startsWith(prefix))
|
|
70
|
+
continue;
|
|
71
|
+
out.push(...entry.facts);
|
|
72
|
+
}
|
|
73
|
+
out.sort((a, b) => a.timestamp - b.timestamp);
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=FactStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FactStore.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/FactStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file canonicalization.ts
|
|
3
|
+
* @description Subject/predicate normalization + the closed 24-predicate
|
|
4
|
+
* schema powering the Step 9 fact-graph. The closed schema is the core
|
|
5
|
+
* design decision: it kills the Step 5/7/8 failure mode where general-
|
|
6
|
+
* purpose LLMs emit useless catch-all predicates ("mentioned",
|
|
7
|
+
* "discussed") that masked over-generalization. Extraction outputs
|
|
8
|
+
* with predicates outside this set are silently dropped.
|
|
9
|
+
*
|
|
10
|
+
* @module agentos/memory/retrieval/fact-graph/canonicalization
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* The 25 canonical predicates Step 9 accepts. Grouped by category for
|
|
14
|
+
* readability; the Set is flat at runtime. (The Step 9 spec labels this
|
|
15
|
+
* "24-predicate schema" — the actual enumerated list is 25; the spec
|
|
16
|
+
* label is a counting artifact, the predicate set itself is authoritative.)
|
|
17
|
+
*/
|
|
18
|
+
export declare const PREDICATE_SCHEMA: Set<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Return the canonical form of a subject string.
|
|
21
|
+
* - First-person pronouns (I, my, me, mine, myself) → "user"
|
|
22
|
+
* - Anything else → lowercased + trimmed
|
|
23
|
+
*/
|
|
24
|
+
export declare function canonicalizeSubject(subject: string): string;
|
|
25
|
+
/** Whether `predicate` is in the closed schema. */
|
|
26
|
+
export declare function isValidPredicate(predicate: string): boolean;
|
|
27
|
+
/** Stable 16-hex-char hash of a canonical subject. */
|
|
28
|
+
export declare function hashSubject(canonicalSubject: string): string;
|
|
29
|
+
/** Stable 16-hex-char hash of a predicate. */
|
|
30
|
+
export declare function hashPredicate(predicate: string): string;
|
|
31
|
+
//# sourceMappingURL=canonicalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonicalization.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/canonicalization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,aAkC3B,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file canonicalization.ts
|
|
3
|
+
* @description Subject/predicate normalization + the closed 24-predicate
|
|
4
|
+
* schema powering the Step 9 fact-graph. The closed schema is the core
|
|
5
|
+
* design decision: it kills the Step 5/7/8 failure mode where general-
|
|
6
|
+
* purpose LLMs emit useless catch-all predicates ("mentioned",
|
|
7
|
+
* "discussed") that masked over-generalization. Extraction outputs
|
|
8
|
+
* with predicates outside this set are silently dropped.
|
|
9
|
+
*
|
|
10
|
+
* @module agentos/memory/retrieval/fact-graph/canonicalization
|
|
11
|
+
*/
|
|
12
|
+
import { createHash } from 'node:crypto';
|
|
13
|
+
const FIRST_PERSON = new Set(['i', 'my', 'me', 'mine', 'myself']);
|
|
14
|
+
/**
|
|
15
|
+
* The 25 canonical predicates Step 9 accepts. Grouped by category for
|
|
16
|
+
* readability; the Set is flat at runtime. (The Step 9 spec labels this
|
|
17
|
+
* "24-predicate schema" — the actual enumerated list is 25; the spec
|
|
18
|
+
* label is a counting artifact, the predicate set itself is authoritative.)
|
|
19
|
+
*/
|
|
20
|
+
export const PREDICATE_SCHEMA = new Set([
|
|
21
|
+
// Preferences (3)
|
|
22
|
+
'prefers',
|
|
23
|
+
'dislikes',
|
|
24
|
+
'avoids',
|
|
25
|
+
// Identity (3)
|
|
26
|
+
'is',
|
|
27
|
+
'isNamed',
|
|
28
|
+
'identifiesAs',
|
|
29
|
+
// State (5)
|
|
30
|
+
'livesIn',
|
|
31
|
+
'worksAt',
|
|
32
|
+
'studiesAt',
|
|
33
|
+
'ownsPet',
|
|
34
|
+
'drives',
|
|
35
|
+
// Relationships (4)
|
|
36
|
+
'marriedTo',
|
|
37
|
+
'parentOf',
|
|
38
|
+
'friendOf',
|
|
39
|
+
'colleagueOf',
|
|
40
|
+
// Events (4)
|
|
41
|
+
'visited',
|
|
42
|
+
'attended',
|
|
43
|
+
'purchased',
|
|
44
|
+
'scheduled',
|
|
45
|
+
// Health (3)
|
|
46
|
+
'allergicTo',
|
|
47
|
+
'takesMedication',
|
|
48
|
+
'diagnosedWith',
|
|
49
|
+
// Misc (3) — deliberately narrow so the extractor can't fall back
|
|
50
|
+
// to a generic "mentioned" catch-all.
|
|
51
|
+
'commitsTo',
|
|
52
|
+
'decidedOn',
|
|
53
|
+
'believes',
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* Return the canonical form of a subject string.
|
|
57
|
+
* - First-person pronouns (I, my, me, mine, myself) → "user"
|
|
58
|
+
* - Anything else → lowercased + trimmed
|
|
59
|
+
*/
|
|
60
|
+
export function canonicalizeSubject(subject) {
|
|
61
|
+
const trimmed = subject.trim().toLowerCase();
|
|
62
|
+
if (FIRST_PERSON.has(trimmed))
|
|
63
|
+
return 'user';
|
|
64
|
+
return trimmed;
|
|
65
|
+
}
|
|
66
|
+
/** Whether `predicate` is in the closed schema. */
|
|
67
|
+
export function isValidPredicate(predicate) {
|
|
68
|
+
return PREDICATE_SCHEMA.has(predicate);
|
|
69
|
+
}
|
|
70
|
+
/** Stable 16-hex-char hash of a canonical subject. */
|
|
71
|
+
export function hashSubject(canonicalSubject) {
|
|
72
|
+
return createHash('sha256').update(`subj:${canonicalSubject}`).digest('hex').slice(0, 16);
|
|
73
|
+
}
|
|
74
|
+
/** Stable 16-hex-char hash of a predicate. */
|
|
75
|
+
export function hashPredicate(predicate) {
|
|
76
|
+
return createHash('sha256').update(`pred:${predicate}`).digest('hex').slice(0, 16);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=canonicalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonicalization.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/canonicalization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IAC9C,kBAAkB;IAClB,SAAS;IACT,UAAU;IACV,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,SAAS;IACT,cAAc;IACd,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,oBAAoB;IACpB,WAAW;IACX,UAAU;IACV,UAAU;IACV,aAAa;IACb,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;IACX,WAAW;IACX,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,eAAe;IACf,kEAAkE;IAClE,sCAAsC;IACtC,WAAW;IACX,WAAW;IACX,UAAU;CACX,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,WAAW,CAAC,gBAAwB;IAClD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file index.ts
|
|
3
|
+
* @description Barrel for the Step 9 fact-graph module.
|
|
4
|
+
*/
|
|
5
|
+
export { FactStore } from './FactStore.js';
|
|
6
|
+
export { FactExtractor } from './FactExtractor.js';
|
|
7
|
+
export type { FactExtractorOptions, FactExtractorSession } from './FactExtractor.js';
|
|
8
|
+
export type { Fact, FactStoreEntry } from './types.js';
|
|
9
|
+
export { canonicalizeSubject, hashSubject, hashPredicate, isValidPredicate, PREDICATE_SCHEMA, } from './canonicalization.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrF,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file index.ts
|
|
3
|
+
* @description Barrel for the Step 9 fact-graph module.
|
|
4
|
+
*/
|
|
5
|
+
export { FactStore } from './FactStore.js';
|
|
6
|
+
export { FactExtractor } from './FactExtractor.js';
|
|
7
|
+
export { canonicalizeSubject, hashSubject, hashPredicate, isValidPredicate, PREDICATE_SCHEMA, } from './canonicalization.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file types.ts
|
|
3
|
+
* @description `Fact` + `FactStoreEntry` interfaces for the Step 9
|
|
4
|
+
* fact-graph. See the Step 9 design spec §4.2 for rationale behind the
|
|
5
|
+
* closed predicate schema + literal-object contract.
|
|
6
|
+
*
|
|
7
|
+
* @module agentos/memory/retrieval/fact-graph/types
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* A single extracted fact tuple. `object` MUST be a literal span from
|
|
11
|
+
* the source turn (never paraphrased); this contract is the design
|
|
12
|
+
* delta from Steps 5/7/8 whose summary-based approaches erased
|
|
13
|
+
* specific-value tokens.
|
|
14
|
+
*/
|
|
15
|
+
export interface Fact {
|
|
16
|
+
/** Canonical subject ("user" for first-person, lowercase otherwise). */
|
|
17
|
+
subject: string;
|
|
18
|
+
/** Predicate from the closed schema (see {@link PREDICATE_SCHEMA}). */
|
|
19
|
+
predicate: string;
|
|
20
|
+
/** Literal object span from the source turn — NEVER paraphrased. */
|
|
21
|
+
object: string;
|
|
22
|
+
/** ms since epoch. */
|
|
23
|
+
timestamp: number;
|
|
24
|
+
/** Trace or session IDs this fact was extracted from. */
|
|
25
|
+
sourceTraceIds: string[];
|
|
26
|
+
/** The full sentence the fact came from (for audit, not retrieval). */
|
|
27
|
+
sourceSpan: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Time-sorted-ascending list of facts for a single (subject, predicate)
|
|
31
|
+
* pair. The latest fact supersedes earlier ones for `getLatest`
|
|
32
|
+
* queries; all of them are visible to temporal queries via
|
|
33
|
+
* `getAllTimeOrdered`.
|
|
34
|
+
*/
|
|
35
|
+
export interface FactStoreEntry {
|
|
36
|
+
facts: Fact[];
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,IAAI;IACnB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,IAAI,EAAE,CAAC;CACf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file types.ts
|
|
3
|
+
* @description `Fact` + `FactStoreEntry` interfaces for the Step 9
|
|
4
|
+
* fact-graph. See the Step 9 design spec §4.2 for rationale behind the
|
|
5
|
+
* closed predicate schema + literal-object contract.
|
|
6
|
+
*
|
|
7
|
+
* @module agentos/memory/retrieval/fact-graph/types
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/fact-graph/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -47,6 +47,7 @@ import type { RerankerService } from '../../../rag/reranking/RerankerService.js'
|
|
|
47
47
|
import type { HydeRetriever } from '../../../rag/HydeRetriever.js';
|
|
48
48
|
import type { CognitiveRetrievalResult, MemoryScope } from '../../core/types.js';
|
|
49
49
|
import type { PADState } from '../../core/config.js';
|
|
50
|
+
import type { FactStore } from '../fact-graph/FactStore.js';
|
|
50
51
|
/**
|
|
51
52
|
* Options for constructing a {@link HybridRetriever}.
|
|
52
53
|
*/
|
|
@@ -86,7 +87,35 @@ export interface HybridRetrieverOptions {
|
|
|
86
87
|
defaultSparseWeight?: number;
|
|
87
88
|
/** Default RRF constant. @default 60 */
|
|
88
89
|
defaultRrfK?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Step-9: optional {@link FactStore} of `(subject, predicate) → Fact[]`
|
|
92
|
+
* tuples extracted at session-ingest time. When present AND the query
|
|
93
|
+
* classifier extracts at least one `(subject, predicate)` pair from
|
|
94
|
+
* the query, the latest fact per pair is prepended as a synthetic
|
|
95
|
+
* {@link ScoredMemoryTrace} (retrievalScore: 1.0, sourceType:
|
|
96
|
+
* 'fact_graph') to the merged pool BEFORE rerank. Preserves literal
|
|
97
|
+
* `object` tokens where summary-based approaches (Steps 5/7/8)
|
|
98
|
+
* paraphrased them away.
|
|
99
|
+
*/
|
|
100
|
+
factStore?: FactStore;
|
|
101
|
+
/**
|
|
102
|
+
* Step-9: optional query classifier. Given the user's query, returns
|
|
103
|
+
* `(subject, predicate)` pairs to look up in the {@link factStore},
|
|
104
|
+
* plus whether the query is temporal (in which case ALL facts for a
|
|
105
|
+
* subject are prepended, not just the latest). When absent and
|
|
106
|
+
* `factStore` is set, a keyword-based default is used.
|
|
107
|
+
*/
|
|
108
|
+
factGraphQueryClassifier?: FactGraphQueryClassifier;
|
|
109
|
+
}
|
|
110
|
+
/** Return type of a fact-graph query classifier. */
|
|
111
|
+
export interface FactGraphClassification {
|
|
112
|
+
isTemporalQuestion: boolean;
|
|
113
|
+
extractedSubjectPredicates: Array<{
|
|
114
|
+
subject: string;
|
|
115
|
+
predicate: string;
|
|
116
|
+
}>;
|
|
89
117
|
}
|
|
118
|
+
export type FactGraphQueryClassifier = (query: string) => FactGraphClassification;
|
|
90
119
|
/**
|
|
91
120
|
* Per-call options for {@link HybridRetriever.retrieve}.
|
|
92
121
|
*/
|
|
@@ -125,6 +154,8 @@ export declare class HybridRetriever {
|
|
|
125
154
|
private readonly defaultDenseWeight;
|
|
126
155
|
private readonly defaultSparseWeight;
|
|
127
156
|
private readonly defaultRrfK;
|
|
157
|
+
private readonly factStore?;
|
|
158
|
+
private readonly factGraphQueryClassifier;
|
|
128
159
|
constructor(opts: HybridRetrieverOptions);
|
|
129
160
|
retrieve(query: string, mood: PADState, scope: {
|
|
130
161
|
scope: MemoryScope;
|
|
@@ -141,6 +172,17 @@ export declare class HybridRetriever {
|
|
|
141
172
|
* are updated for replaced traces. Returns a diagnostic summary.
|
|
142
173
|
*/
|
|
143
174
|
private refineAmbiguous;
|
|
175
|
+
/**
|
|
176
|
+
* Step-9: build synthetic `ScoredMemoryTrace[]` from the fact-graph.
|
|
177
|
+
* Uses the configured classifier to extract (subject, predicate)
|
|
178
|
+
* pairs from the query. For temporal questions, returns ALL facts
|
|
179
|
+
* for each extracted subject (time-ordered ascending). For non-
|
|
180
|
+
* temporal questions, returns only the LATEST fact per (subject,
|
|
181
|
+
* predicate) pair.
|
|
182
|
+
*/
|
|
183
|
+
private buildFactGraphTraces;
|
|
184
|
+
private factTraceId;
|
|
185
|
+
private factToScoredTrace;
|
|
144
186
|
/**
|
|
145
187
|
* Split a string at the sentence boundary nearest its midpoint.
|
|
146
188
|
* Returns [firstHalf, secondHalf] or null if the string is too short
|
|
@@ -148,4 +190,16 @@ export declare class HybridRetriever {
|
|
|
148
190
|
*/
|
|
149
191
|
private splitAtMidpointSentence;
|
|
150
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Default keyword-based classifier for fact-graph query expansion.
|
|
195
|
+
* Recognizes:
|
|
196
|
+
* - Temporal markers ("first", "last", "when", "before", "after", ...)
|
|
197
|
+
* - First-person references ("I", "my", "me", "user") → subject "user"
|
|
198
|
+
* - Predicate stems present in the query
|
|
199
|
+
*
|
|
200
|
+
* MVP-scoped: LLM-based classification is a follow-up experiment if this
|
|
201
|
+
* keyword path misses on Tier A. The priority is keeping query-time zero
|
|
202
|
+
* LLM overhead on queries the classifier skips.
|
|
203
|
+
*/
|
|
204
|
+
export declare function defaultKeywordFactGraphClassifier(query: string): FactGraphClassification;
|
|
151
205
|
//# sourceMappingURL=HybridRetriever.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HybridRetriever.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/hybrid/HybridRetriever.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"HybridRetriever.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/hybrid/HybridRetriever.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
*/
|
|
44
44
|
import { BM25Index } from '../../../rag/search/BM25Index.js';
|
|
45
45
|
import { reciprocalRankFusion } from './reciprocalRankFusion.js';
|
|
46
|
+
import { PREDICATE_SCHEMA, hashPredicate, hashSubject } from '../fact-graph/canonicalization.js';
|
|
46
47
|
/**
|
|
47
48
|
* Hybrid BM25 + dense retriever.
|
|
48
49
|
*
|
|
@@ -70,6 +71,9 @@ export class HybridRetriever {
|
|
|
70
71
|
this.defaultDenseWeight = opts.defaultDenseWeight ?? 0.7;
|
|
71
72
|
this.defaultSparseWeight = opts.defaultSparseWeight ?? 0.3;
|
|
72
73
|
this.defaultRrfK = opts.defaultRrfK ?? 60;
|
|
74
|
+
this.factStore = opts.factStore;
|
|
75
|
+
this.factGraphQueryClassifier =
|
|
76
|
+
opts.factGraphQueryClassifier ?? defaultKeywordFactGraphClassifier;
|
|
73
77
|
}
|
|
74
78
|
async retrieve(query, mood, scope, options = {}) {
|
|
75
79
|
const startTime = Date.now();
|
|
@@ -83,6 +87,12 @@ export class HybridRetriever {
|
|
|
83
87
|
// the final diagnostics carry a full trace of where each candidate
|
|
84
88
|
// lived at every step of the pipeline.
|
|
85
89
|
const stageIds = { dense: [], sparse: [], merged: [], reranked: [], final: [] };
|
|
90
|
+
// Step-9: build synthetic fact-graph traces to prepend before
|
|
91
|
+
// rerank. Empty array when factStore is unset or the classifier
|
|
92
|
+
// extracts no (subject, predicate) pairs from the query.
|
|
93
|
+
const factGraphTraces = this.factStore
|
|
94
|
+
? this.buildFactGraphTraces(query, scope)
|
|
95
|
+
: [];
|
|
86
96
|
// HyDE expansion (Step 4): when a hydeRetriever is attached,
|
|
87
97
|
// generate a hypothetical answer and use it as the query for BOTH
|
|
88
98
|
// dense and sparse sides. The reranker (below) keeps the ORIGINAL
|
|
@@ -110,13 +120,16 @@ export class HybridRetriever {
|
|
|
110
120
|
const sparseResults = this.bm25.search(effectiveQuery, overFetchTopK);
|
|
111
121
|
stageIds.sparse = sparseResults.map((r) => r.id);
|
|
112
122
|
// Fallback: empty BM25 index or zero sparse hits => dense-only
|
|
113
|
-
// with explicit escalation diagnostic.
|
|
123
|
+
// with explicit escalation diagnostic. Fact-graph synthetic traces
|
|
124
|
+
// still prepend (Step 9) since they're an additive signal independent
|
|
125
|
+
// of BM25.
|
|
114
126
|
if (sparseResults.length === 0) {
|
|
115
|
-
const
|
|
127
|
+
const combined = [...factGraphTraces, ...denseScored];
|
|
128
|
+
const denseFinal = combined.slice(0, recallTopK);
|
|
116
129
|
stageIds.final = denseFinal.map((t) => t.id);
|
|
117
130
|
return this.buildResult(denseFinal, {
|
|
118
131
|
escalations: ['hybrid-retriever:sparse-empty'],
|
|
119
|
-
candidatesScanned:
|
|
132
|
+
candidatesScanned: combined.length,
|
|
120
133
|
vectorSearchMs: denseTimings.vectorSearchMs,
|
|
121
134
|
scoringMs: denseTimings.scoringMs,
|
|
122
135
|
totalMs: Date.now() - startTime,
|
|
@@ -137,6 +150,15 @@ export class HybridRetriever {
|
|
|
137
150
|
// the dense side. Skip sparse-only docs (see file docstring).
|
|
138
151
|
const denseById = new Map(denseScored.map((t) => [t.id, t]));
|
|
139
152
|
const hydrated = [];
|
|
153
|
+
// Step-9: prepend synthetic fact-graph traces BEFORE the rerank
|
|
154
|
+
// pass. Each synthetic trace carries retrievalScore: 1.0 so it
|
|
155
|
+
// enters the rerank input at the top; rerank can still downrank it
|
|
156
|
+
// if it genuinely misses the query, in which case the blend
|
|
157
|
+
// reflects that. This is the composition discipline that let Step 3
|
|
158
|
+
// Hybrid ship — additive signal, not destructive replacement.
|
|
159
|
+
for (const synthetic of factGraphTraces) {
|
|
160
|
+
hydrated.push(synthetic);
|
|
161
|
+
}
|
|
140
162
|
for (const m of merged) {
|
|
141
163
|
const trace = denseById.get(m.id);
|
|
142
164
|
if (trace) {
|
|
@@ -267,6 +289,93 @@ export class HybridRetriever {
|
|
|
267
289
|
}
|
|
268
290
|
return { threshold, candidateCount, replacedIds };
|
|
269
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Step-9: build synthetic `ScoredMemoryTrace[]` from the fact-graph.
|
|
294
|
+
* Uses the configured classifier to extract (subject, predicate)
|
|
295
|
+
* pairs from the query. For temporal questions, returns ALL facts
|
|
296
|
+
* for each extracted subject (time-ordered ascending). For non-
|
|
297
|
+
* temporal questions, returns only the LATEST fact per (subject,
|
|
298
|
+
* predicate) pair.
|
|
299
|
+
*/
|
|
300
|
+
buildFactGraphTraces(query, scope) {
|
|
301
|
+
if (!this.factStore)
|
|
302
|
+
return [];
|
|
303
|
+
const classification = this.factGraphQueryClassifier(query);
|
|
304
|
+
const out = [];
|
|
305
|
+
const seenFactIds = new Set();
|
|
306
|
+
for (const { subject, predicate } of classification.extractedSubjectPredicates) {
|
|
307
|
+
if (classification.isTemporalQuestion) {
|
|
308
|
+
// Temporal: include all facts for the subject across all predicates
|
|
309
|
+
// in the schema — temporal reasoning often spans multiple facts.
|
|
310
|
+
const all = this.factStore.getAllTimeOrdered(scope.scope, scope.scopeId, subject);
|
|
311
|
+
for (const fact of all) {
|
|
312
|
+
const id = this.factTraceId(fact);
|
|
313
|
+
if (seenFactIds.has(id))
|
|
314
|
+
continue;
|
|
315
|
+
seenFactIds.add(id);
|
|
316
|
+
out.push(this.factToScoredTrace(fact, scope));
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
const latest = this.factStore.getLatest(scope.scope, scope.scopeId, subject, predicate);
|
|
321
|
+
if (!latest)
|
|
322
|
+
continue;
|
|
323
|
+
const id = this.factTraceId(latest);
|
|
324
|
+
if (seenFactIds.has(id))
|
|
325
|
+
continue;
|
|
326
|
+
seenFactIds.add(id);
|
|
327
|
+
out.push(this.factToScoredTrace(latest, scope));
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return out;
|
|
331
|
+
}
|
|
332
|
+
factTraceId(fact) {
|
|
333
|
+
return `fact-graph:${hashSubject(fact.subject)}:${hashPredicate(fact.predicate)}:${fact.timestamp}`;
|
|
334
|
+
}
|
|
335
|
+
factToScoredTrace(fact, scope) {
|
|
336
|
+
const id = this.factTraceId(fact);
|
|
337
|
+
return {
|
|
338
|
+
id,
|
|
339
|
+
type: 'semantic',
|
|
340
|
+
scope: scope.scope,
|
|
341
|
+
scopeId: scope.scopeId,
|
|
342
|
+
content: `${fact.subject} ${fact.predicate} ${fact.object} (as of ${new Date(fact.timestamp).toISOString()}).`,
|
|
343
|
+
entities: [fact.subject],
|
|
344
|
+
tags: ['fact-graph', `predicate:${fact.predicate}`],
|
|
345
|
+
provenance: {
|
|
346
|
+
sourceType: 'fact_graph',
|
|
347
|
+
sourceTimestamp: fact.timestamp,
|
|
348
|
+
confidence: 1,
|
|
349
|
+
verificationCount: 0,
|
|
350
|
+
},
|
|
351
|
+
emotionalContext: {
|
|
352
|
+
valence: 0,
|
|
353
|
+
arousal: 0,
|
|
354
|
+
dominance: 0,
|
|
355
|
+
intensity: 0,
|
|
356
|
+
gmiMood: '',
|
|
357
|
+
},
|
|
358
|
+
encodingStrength: 1,
|
|
359
|
+
stability: 1,
|
|
360
|
+
retrievalCount: 0,
|
|
361
|
+
lastAccessedAt: fact.timestamp,
|
|
362
|
+
accessCount: 0,
|
|
363
|
+
reinforcementInterval: 0,
|
|
364
|
+
associatedTraceIds: [],
|
|
365
|
+
createdAt: fact.timestamp,
|
|
366
|
+
updatedAt: fact.timestamp,
|
|
367
|
+
isActive: true,
|
|
368
|
+
retrievalScore: 1,
|
|
369
|
+
scoreBreakdown: {
|
|
370
|
+
strengthScore: 1,
|
|
371
|
+
similarityScore: 1,
|
|
372
|
+
recencyScore: 1,
|
|
373
|
+
emotionalCongruenceScore: 0,
|
|
374
|
+
graphActivationScore: 0,
|
|
375
|
+
importanceScore: 1,
|
|
376
|
+
},
|
|
377
|
+
};
|
|
378
|
+
}
|
|
270
379
|
/**
|
|
271
380
|
* Split a string at the sentence boundary nearest its midpoint.
|
|
272
381
|
* Returns [firstHalf, secondHalf] or null if the string is too short
|
|
@@ -298,4 +407,37 @@ export class HybridRetriever {
|
|
|
298
407
|
return [text.slice(0, spaceIdx).trim(), text.slice(spaceIdx + 1).trim()];
|
|
299
408
|
}
|
|
300
409
|
}
|
|
410
|
+
// ---------------------------------------------------------------------------
|
|
411
|
+
// Default fact-graph query classifier (keyword-based, zero-LLM MVP)
|
|
412
|
+
// ---------------------------------------------------------------------------
|
|
413
|
+
const TEMPORAL_MARKERS = /\b(first|last|when|before|after|most recent|originally|initially|latest)\b/i;
|
|
414
|
+
const FIRST_PERSON_IN_QUERY = /\b(i|my|me|user)\b/i;
|
|
415
|
+
/**
|
|
416
|
+
* Default keyword-based classifier for fact-graph query expansion.
|
|
417
|
+
* Recognizes:
|
|
418
|
+
* - Temporal markers ("first", "last", "when", "before", "after", ...)
|
|
419
|
+
* - First-person references ("I", "my", "me", "user") → subject "user"
|
|
420
|
+
* - Predicate stems present in the query
|
|
421
|
+
*
|
|
422
|
+
* MVP-scoped: LLM-based classification is a follow-up experiment if this
|
|
423
|
+
* keyword path misses on Tier A. The priority is keeping query-time zero
|
|
424
|
+
* LLM overhead on queries the classifier skips.
|
|
425
|
+
*/
|
|
426
|
+
export function defaultKeywordFactGraphClassifier(query) {
|
|
427
|
+
const isTemporalQuestion = TEMPORAL_MARKERS.test(query);
|
|
428
|
+
const extractedSubjectPredicates = [];
|
|
429
|
+
if (!FIRST_PERSON_IN_QUERY.test(query)) {
|
|
430
|
+
return { isTemporalQuestion, extractedSubjectPredicates };
|
|
431
|
+
}
|
|
432
|
+
const lowerQuery = query.toLowerCase();
|
|
433
|
+
for (const predicate of PREDICATE_SCHEMA) {
|
|
434
|
+
// Match the predicate stem OR its common inflections. A cheap
|
|
435
|
+
// substring check beats regex compilation per query.
|
|
436
|
+
const stem = predicate.toLowerCase();
|
|
437
|
+
if (lowerQuery.includes(stem)) {
|
|
438
|
+
extractedSubjectPredicates.push({ subject: 'user', predicate });
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return { isTemporalQuestion, extractedSubjectPredicates };
|
|
442
|
+
}
|
|
301
443
|
//# sourceMappingURL=HybridRetriever.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HybridRetriever.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/hybrid/HybridRetriever.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HybridRetriever.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/hybrid/HybridRetriever.ts"],"names":[],"mappings":"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"}
|