@framers/agentos 0.1.251 → 0.1.252
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/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/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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"}
|
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":"AAAA;;;;;;;;;;;GAWG;AAOH,YAAY,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,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;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGzF,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAG7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC1F,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAOhF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,aAAa,EACb,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAGzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,YAAY,EACV,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qDAAqD,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAYvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,YAAY,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,cAAc,GACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,4CAA4C,CAAC;AAMpD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EACV,IAAI,EACJ,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,YAAY,EACV,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAGxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,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;AACjF,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAO9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,eAAe,EACf,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,IAAI,yBAAyB,EAChD,YAAY,EACZ,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,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;AAGxD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,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;AAChD,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,YAAY,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAGrG,OAAO,EACL,mCAAmC,EACnC,uCAAuC,EACvC,wCAAwC,GACzC,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,wCAAwC,EACxC,yCAAyC,GAC1C,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAGhB,eAAe,EACf,WAAW,GACZ,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAMlG,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,aAAa,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACjF,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,GACZ,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC"}
|
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":"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"}
|
|
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"}
|