@seanhogg/builderforce-memory 2026.9.34 → 2026.10.2
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/errors/SSMError.d.ts +1 -1
- package/dist/errors/SSMError.d.ts.map +1 -1
- package/dist/errors/SSMError.js.map +1 -1
- package/dist/handoff/index.d.ts +5 -5
- package/dist/handoff/index.js +5 -5
- package/dist/handoff/note.d.ts +1 -1
- package/dist/handoff/note.js +1 -1
- package/dist/handoff/pack.d.ts +13 -4
- package/dist/handoff/pack.d.ts.map +1 -1
- package/dist/handoff/pack.js +31 -10
- package/dist/handoff/pack.js.map +1 -1
- package/dist/memory/MemoryStore.d.ts +120 -181
- package/dist/memory/MemoryStore.d.ts.map +1 -1
- package/dist/memory/MemoryStore.js +201 -389
- package/dist/memory/MemoryStore.js.map +1 -1
- package/dist/memory/SemanticRecall.d.ts +64 -0
- package/dist/memory/SemanticRecall.d.ts.map +1 -0
- package/dist/memory/SemanticRecall.js +188 -0
- package/dist/memory/SemanticRecall.js.map +1 -0
- package/dist/memory/records.d.ts +26 -0
- package/dist/memory/records.d.ts.map +1 -0
- package/dist/memory/records.js +71 -0
- package/dist/memory/records.js.map +1 -0
- package/dist/memory/ttlSweeper.d.ts +12 -0
- package/dist/memory/ttlSweeper.d.ts.map +1 -0
- package/dist/memory/ttlSweeper.js +28 -0
- package/dist/memory/ttlSweeper.js.map +1 -0
- package/dist/memory/types.d.ts +142 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +6 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/storage/ScopedFactRepository.d.ts +156 -0
- package/dist/storage/ScopedFactRepository.d.ts.map +1 -0
- package/dist/storage/ScopedFactRepository.js +278 -0
- package/dist/storage/ScopedFactRepository.js.map +1 -0
- package/dist/storage/factImport.d.ts +21 -0
- package/dist/storage/factImport.d.ts.map +1 -0
- package/dist/storage/factImport.js +61 -0
- package/dist/storage/factImport.js.map +1 -0
- package/dist/storage/factMutations.d.ts +46 -0
- package/dist/storage/factMutations.d.ts.map +1 -0
- package/dist/storage/factMutations.js +73 -0
- package/dist/storage/factMutations.js.map +1 -0
- package/dist/storage/factQueries.d.ts +16 -0
- package/dist/storage/factQueries.d.ts.map +1 -0
- package/dist/storage/factQueries.js +36 -0
- package/dist/storage/factQueries.js.map +1 -0
- package/dist/storage/factRetention.d.ts +30 -0
- package/dist/storage/factRetention.d.ts.map +1 -0
- package/dist/storage/factRetention.js +65 -0
- package/dist/storage/factRetention.js.map +1 -0
- package/dist/storage/fileLock.d.ts +56 -0
- package/dist/storage/fileLock.d.ts.map +1 -0
- package/dist/storage/fileLock.js +138 -0
- package/dist/storage/fileLock.js.map +1 -0
- package/dist/storage/fileTransaction.d.ts +33 -0
- package/dist/storage/fileTransaction.d.ts.map +1 -0
- package/dist/storage/fileTransaction.js +108 -0
- package/dist/storage/fileTransaction.js.map +1 -0
- package/dist/storage/idbAdapter.d.ts +95 -0
- package/dist/storage/idbAdapter.d.ts.map +1 -0
- package/dist/storage/idbAdapter.js +311 -0
- package/dist/storage/idbAdapter.js.map +1 -0
- package/dist/storage/nodeFileAdapter.d.ts +127 -0
- package/dist/storage/nodeFileAdapter.d.ts.map +1 -0
- package/dist/storage/nodeFileAdapter.js +275 -0
- package/dist/storage/nodeFileAdapter.js.map +1 -0
- package/dist/storage/syncJournal.d.ts +19 -0
- package/dist/storage/syncJournal.d.ts.map +1 -0
- package/dist/storage/syncJournal.js +46 -0
- package/dist/storage/syncJournal.js.map +1 -0
- package/dist/storage/types.d.ts +207 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +90 -0
- package/dist/storage/types.js.map +1 -0
- package/package.json +3 -3
- package/src/errors/SSMError.ts +1 -0
- package/src/handoff/handoff.test.ts +52 -2
- package/src/handoff/index.ts +5 -5
- package/src/handoff/note.ts +1 -1
- package/src/handoff/pack.ts +32 -9
- package/src/memory/MemoryStore.ts +245 -525
- package/src/memory/SemanticRecall.ts +204 -0
- package/src/memory/records.ts +79 -0
- package/src/memory/ttlSweeper.ts +29 -0
- package/src/memory/types.ts +149 -0
- package/src/storage/ScopedFactRepository.ts +373 -0
- package/src/storage/factImport.ts +73 -0
- package/src/storage/factMutations.ts +106 -0
- package/src/storage/factQueries.ts +41 -0
- package/src/storage/factRetention.ts +82 -0
- package/src/storage/fileLock.ts +162 -0
- package/src/storage/fileTransaction.ts +116 -0
- package/src/storage/idbAdapter.ts +373 -0
- package/src/storage/nodeFileAdapter.ts +331 -0
- package/src/storage/syncJournal.ts +47 -0
- package/src/storage/types.ts +262 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../src/memory/MemoryStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../src/memory/MemoryStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/SemanticRecall.ts – The query side of {@link MemoryStore}: semantic
|
|
3
|
+
* (SSM-embedding cosine, Jaccard fallback) and hybrid (RRF + MMR) recall over
|
|
4
|
+
* an already-loaded fact list, plus the derived caches that make it cheap:
|
|
5
|
+
*
|
|
6
|
+
* - an LRU content→embedding cache (EVM-8);
|
|
7
|
+
* - a persistent dense vector store keyed by `key@seq` and the HNSW index
|
|
8
|
+
* built from it, reused until the fact set changes (EVM-1 / EVM-1b).
|
|
9
|
+
*
|
|
10
|
+
* Every cache is model-specific and is dropped when the runtime identity
|
|
11
|
+
* changes, or when the owning store calls {@link SemanticRecall.invalidate}
|
|
12
|
+
* (clear, cross-context write).
|
|
13
|
+
*/
|
|
14
|
+
import { type HybridRetrieveOptions } from '../retrieval/index.js';
|
|
15
|
+
import type { MemoryEntry, RankedRecall, ScoredMemory, SSMRuntimeRef } from './types.js';
|
|
16
|
+
export interface SemanticRecallOptions {
|
|
17
|
+
/** Fact count at/above which dense search uses the HNSW index. */
|
|
18
|
+
annThreshold: number;
|
|
19
|
+
/** Max content→embedding vectors held in the LRU cache. */
|
|
20
|
+
embedCacheMax: number;
|
|
21
|
+
/** Hits scoring below this are dropped (0 = keep everything). */
|
|
22
|
+
minRelevance: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class SemanticRecall {
|
|
25
|
+
private readonly _opts;
|
|
26
|
+
private readonly _embedCache;
|
|
27
|
+
private _embedRuntime;
|
|
28
|
+
private readonly _denseVectors;
|
|
29
|
+
private _denseIndex;
|
|
30
|
+
/** Signature of the fact set the current index was built from. */
|
|
31
|
+
private _denseSig;
|
|
32
|
+
private _denseRuntime;
|
|
33
|
+
constructor(_opts: SemanticRecallOptions);
|
|
34
|
+
/** Drops every derived cache (the fact set changed underneath us). */
|
|
35
|
+
invalidate(): void;
|
|
36
|
+
/** Drops the dense vectors + index but keeps content embeddings. */
|
|
37
|
+
resetDense(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Top-K entries of `all` by real 0..1 relevance: SSM-embedding cosine when
|
|
40
|
+
* `runtime.embed` works, Jaccard word overlap otherwise.
|
|
41
|
+
*/
|
|
42
|
+
similar(all: MemoryEntry[], query: string, topK: number, runtime?: SSMRuntimeRef): Promise<ScoredMemory[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Hybrid recall: dense + BM25 fused by the shared `hybridRetrieve` primitive,
|
|
45
|
+
* with an honest `method` — `'embedding'` only when the query AND at least
|
|
46
|
+
* one candidate really embedded.
|
|
47
|
+
*/
|
|
48
|
+
ranked(all: MemoryEntry[], query: string, topK: number, runtime?: SSMRuntimeRef, opts?: HybridRetrieveOptions): Promise<RankedRecall>;
|
|
49
|
+
private _floor;
|
|
50
|
+
/**
|
|
51
|
+
* Cached embedding for `text`, computed via `runtime.embed()` on a miss.
|
|
52
|
+
* `null` (never throws) when embedding is unavailable, so callers fall back
|
|
53
|
+
* to lexical similarity.
|
|
54
|
+
*/
|
|
55
|
+
private _embed;
|
|
56
|
+
/**
|
|
57
|
+
* Synchronise the dense vector store + HNSW index to `all`: embeds ONLY
|
|
58
|
+
* new/changed facts (keyed by `key@seq`), prunes removed ones, and rebuilds
|
|
59
|
+
* the index only when the fact set changed. `null` when any embedding is
|
|
60
|
+
* unavailable (caller falls back to lexical).
|
|
61
|
+
*/
|
|
62
|
+
private _syncDense;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=SemanticRecall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticRecall.d.ts","sourceRoot":"","sources":["../../src/memory/SemanticRecall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAmE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpI,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;CACxB;AAQD,qBAAa,cAAc;IASX,OAAO,CAAC,QAAQ,CAAC,KAAK;IARlC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,WAAW,CAA0B;IAC7C,kEAAkE;IAClE,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,aAAa,CAAiB;gBAET,KAAK,EAAE,qBAAqB;IAEzD,sEAAsE;IACtE,UAAU,IAAI,IAAI;IAKlB,oEAAoE;IACpE,UAAU,IAAI,IAAI;IAMlB;;;OAGG;IACG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyBhH;;;;OAIG;IACG,MAAM,CACR,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,EACvB,IAAI,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC;IAoBxB,OAAO,CAAC,MAAM;IAKd;;;;OAIG;YACW,MAAM;IA6BpB;;;;;OAKG;YACW,UAAU;CAyC3B"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/SemanticRecall.ts – The query side of {@link MemoryStore}: semantic
|
|
3
|
+
* (SSM-embedding cosine, Jaccard fallback) and hybrid (RRF + MMR) recall over
|
|
4
|
+
* an already-loaded fact list, plus the derived caches that make it cheap:
|
|
5
|
+
*
|
|
6
|
+
* - an LRU content→embedding cache (EVM-8);
|
|
7
|
+
* - a persistent dense vector store keyed by `key@seq` and the HNSW index
|
|
8
|
+
* built from it, reused until the fact set changes (EVM-1 / EVM-1b).
|
|
9
|
+
*
|
|
10
|
+
* Every cache is model-specific and is dropped when the runtime identity
|
|
11
|
+
* changes, or when the owning store calls {@link SemanticRecall.invalidate}
|
|
12
|
+
* (clear, cross-context write).
|
|
13
|
+
*/
|
|
14
|
+
import { tokenize, jaccardSimilarity } from '../similarity/index.js';
|
|
15
|
+
import { hybridRetrieve, denseSearch, HnswIndex } from '../retrieval/index.js';
|
|
16
|
+
export class SemanticRecall {
|
|
17
|
+
_opts;
|
|
18
|
+
_embedCache = new Map();
|
|
19
|
+
_embedRuntime = null;
|
|
20
|
+
_denseVectors = new Map();
|
|
21
|
+
_denseIndex = null;
|
|
22
|
+
/** Signature of the fact set the current index was built from. */
|
|
23
|
+
_denseSig = '';
|
|
24
|
+
_denseRuntime = null;
|
|
25
|
+
constructor(_opts) {
|
|
26
|
+
this._opts = _opts;
|
|
27
|
+
}
|
|
28
|
+
/** Drops every derived cache (the fact set changed underneath us). */
|
|
29
|
+
invalidate() {
|
|
30
|
+
this._embedCache.clear();
|
|
31
|
+
this.resetDense();
|
|
32
|
+
}
|
|
33
|
+
/** Drops the dense vectors + index but keeps content embeddings. */
|
|
34
|
+
resetDense() {
|
|
35
|
+
this._denseVectors.clear();
|
|
36
|
+
this._denseIndex = null;
|
|
37
|
+
this._denseSig = '';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Top-K entries of `all` by real 0..1 relevance: SSM-embedding cosine when
|
|
41
|
+
* `runtime.embed` works, Jaccard word overlap otherwise.
|
|
42
|
+
*/
|
|
43
|
+
async similar(all, query, topK, runtime) {
|
|
44
|
+
if (all.length === 0)
|
|
45
|
+
return [];
|
|
46
|
+
if (runtime != null && typeof runtime.embed === 'function') {
|
|
47
|
+
const queryVec = await this._embed(runtime, query);
|
|
48
|
+
if (queryVec) {
|
|
49
|
+
// EVM-1b: sync the persistent vector store + index (embeds only the
|
|
50
|
+
// delta), then query it — no per-call re-embed of every fact.
|
|
51
|
+
const dense = await this._syncDense(runtime, all);
|
|
52
|
+
if (dense) {
|
|
53
|
+
const hits = dense.index
|
|
54
|
+
? dense.index.search(queryVec, topK)
|
|
55
|
+
: denseSearch(queryVec, dense.items, topK, this._opts.annThreshold);
|
|
56
|
+
return this._floor(hits
|
|
57
|
+
.map((h) => { const entry = dense.byKey.get(h.id); return entry ? { entry, score: h.score } : null; })
|
|
58
|
+
.filter((e) => !!e));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Any embedding failure falls through to the Jaccard path below.
|
|
62
|
+
}
|
|
63
|
+
const queryTokens = new Set(tokenize(query));
|
|
64
|
+
const scored = all.map((entry) => ({ entry, score: jaccardSimilarity(queryTokens, new Set(tokenize(entry.content))) }));
|
|
65
|
+
scored.sort((a, b) => b.score - a.score);
|
|
66
|
+
return this._floor(scored).slice(0, topK);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Hybrid recall: dense + BM25 fused by the shared `hybridRetrieve` primitive,
|
|
70
|
+
* with an honest `method` — `'embedding'` only when the query AND at least
|
|
71
|
+
* one candidate really embedded.
|
|
72
|
+
*/
|
|
73
|
+
async ranked(all, query, topK, runtime, opts) {
|
|
74
|
+
if (all.length === 0)
|
|
75
|
+
return { hits: [], method: 'lexical' };
|
|
76
|
+
const canEmbed = runtime != null && typeof runtime.embed === 'function';
|
|
77
|
+
const queryVec = canEmbed ? (await this._embed(runtime, query)) ?? undefined : undefined;
|
|
78
|
+
const candidates = [];
|
|
79
|
+
for (const entry of all) {
|
|
80
|
+
const vector = queryVec ? (await this._embed(runtime, entry.content)) ?? undefined : undefined;
|
|
81
|
+
candidates.push({ id: entry.key, text: entry.content, vector });
|
|
82
|
+
}
|
|
83
|
+
const dense = !!queryVec && candidates.some((c) => !!c.vector);
|
|
84
|
+
const hits = hybridRetrieve({ text: query, vector: queryVec }, candidates, { topK, annThreshold: this._opts.annThreshold, ...opts });
|
|
85
|
+
const byKey = new Map(all.map((e) => [e.key, e]));
|
|
86
|
+
return {
|
|
87
|
+
hits: this._floor(hits
|
|
88
|
+
.map((h) => { const entry = byKey.get(h.id); return entry ? { entry, score: h.score } : null; })
|
|
89
|
+
.filter((h) => !!h)),
|
|
90
|
+
method: dense ? 'embedding' : 'lexical',
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
_floor(hits) {
|
|
94
|
+
const min = this._opts.minRelevance;
|
|
95
|
+
return min > 0 ? hits.filter((h) => h.score >= min) : hits;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Cached embedding for `text`, computed via `runtime.embed()` on a miss.
|
|
99
|
+
* `null` (never throws) when embedding is unavailable, so callers fall back
|
|
100
|
+
* to lexical similarity.
|
|
101
|
+
*/
|
|
102
|
+
async _embed(runtime, text) {
|
|
103
|
+
if (runtime !== this._embedRuntime) {
|
|
104
|
+
this._embedCache.clear();
|
|
105
|
+
this._embedRuntime = runtime;
|
|
106
|
+
}
|
|
107
|
+
const cached = this._embedCache.get(text);
|
|
108
|
+
if (cached) {
|
|
109
|
+
// LRU touch: re-insert so this entry becomes most-recently-used. (EVM-8)
|
|
110
|
+
this._embedCache.delete(text);
|
|
111
|
+
this._embedCache.set(text, cached);
|
|
112
|
+
return cached;
|
|
113
|
+
}
|
|
114
|
+
let vec;
|
|
115
|
+
try {
|
|
116
|
+
vec = await runtime.embed(text);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Embedding unavailable (no GPU, destroyed runtime, etc.) — the
|
|
120
|
+
// documented lexical fallback, reported to callers as `method`.
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
if (!(vec instanceof Float32Array) || vec.length === 0)
|
|
124
|
+
return null;
|
|
125
|
+
if (this._embedCache.size >= this._opts.embedCacheMax) {
|
|
126
|
+
const lru = this._embedCache.keys().next().value;
|
|
127
|
+
if (lru !== undefined)
|
|
128
|
+
this._embedCache.delete(lru);
|
|
129
|
+
}
|
|
130
|
+
this._embedCache.set(text, vec);
|
|
131
|
+
return vec;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Synchronise the dense vector store + HNSW index to `all`: embeds ONLY
|
|
135
|
+
* new/changed facts (keyed by `key@seq`), prunes removed ones, and rebuilds
|
|
136
|
+
* the index only when the fact set changed. `null` when any embedding is
|
|
137
|
+
* unavailable (caller falls back to lexical).
|
|
138
|
+
*/
|
|
139
|
+
async _syncDense(runtime, all) {
|
|
140
|
+
if (runtime !== this._denseRuntime) {
|
|
141
|
+
this.resetDense();
|
|
142
|
+
this._denseRuntime = runtime;
|
|
143
|
+
}
|
|
144
|
+
const vkeyOf = (e) => `${e.key}@${e.seq ?? 0}`;
|
|
145
|
+
const currentVkeys = new Set();
|
|
146
|
+
let sig = `${all.length}`;
|
|
147
|
+
for (const e of all) {
|
|
148
|
+
const k = vkeyOf(e);
|
|
149
|
+
currentVkeys.add(k);
|
|
150
|
+
sig += '|' + k;
|
|
151
|
+
}
|
|
152
|
+
const byKey = new Map();
|
|
153
|
+
const items = [];
|
|
154
|
+
for (const entry of all) {
|
|
155
|
+
const vk = vkeyOf(entry);
|
|
156
|
+
let vec = this._denseVectors.get(vk);
|
|
157
|
+
if (!vec) {
|
|
158
|
+
const v = await this._embed(runtime, entry.content);
|
|
159
|
+
if (!v)
|
|
160
|
+
return null;
|
|
161
|
+
vec = v;
|
|
162
|
+
this._denseVectors.set(vk, vec);
|
|
163
|
+
}
|
|
164
|
+
items.push({ id: entry.key, vector: vec });
|
|
165
|
+
byKey.set(entry.key, entry);
|
|
166
|
+
}
|
|
167
|
+
if (this._denseVectors.size > currentVkeys.size) {
|
|
168
|
+
for (const k of this._denseVectors.keys()) {
|
|
169
|
+
if (!currentVkeys.has(k))
|
|
170
|
+
this._denseVectors.delete(k);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (all.length >= this._opts.annThreshold) {
|
|
174
|
+
if (sig !== this._denseSig || this._denseIndex === null) {
|
|
175
|
+
const index = new HnswIndex();
|
|
176
|
+
for (const it of items)
|
|
177
|
+
index.add(it.id, it.vector);
|
|
178
|
+
this._denseIndex = index;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
this._denseIndex = null;
|
|
183
|
+
}
|
|
184
|
+
this._denseSig = sig;
|
|
185
|
+
return { byKey, items, index: this._denseIndex };
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=SemanticRecall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticRecall.js","sourceRoot":"","sources":["../../src/memory/SemanticRecall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAuD,MAAM,uBAAuB,CAAC;AAkBpI,MAAM,OAAO,cAAc;IASM;IARZ,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACvD,aAAa,GAAY,IAAI,CAAC;IACrB,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IACzD,WAAW,GAAqB,IAAI,CAAC;IAC7C,kEAAkE;IAC1D,SAAS,GAAG,EAAE,CAAC;IACf,aAAa,GAAY,IAAI,CAAC;IAEtC,YAA6B,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;IAAG,CAAC;IAE7D,sEAAsE;IACtE,UAAU;QACN,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,oEAAoE;IACpE,UAAU;QACN,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,GAAkB,EAAE,KAAa,EAAE,IAAY,EAAE,OAAuB;QAClF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACX,oEAAoE;gBACpE,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAClD,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK;wBACpB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;wBACpC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACxE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;yBAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACrG,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;YACD,iEAAiE;QACrE,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACR,GAAkB,EAClB,KAAa,EACb,IAAY,EACZ,OAAuB,EACvB,IAA4B;QAE5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,MAAM,UAAU,GAAyB,EAAE,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/F,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrI,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC/F,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC1C,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,IAAoB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACpC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,MAAM,CAAC,OAAsB,EAAE,IAAY;QACrD,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACT,yEAAyE;YACzE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACL,gEAAgE;YAChE,gEAAgE;YAChE,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,YAAY,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACjD,IAAI,GAAG,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAC,OAAsB,EAAE,GAAkB;QAC/D,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,CAAc,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;QAAC,CAAC;QAElF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC7C,MAAM,KAAK,GAAgD,EAAE,CAAC;QAC9D,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACpB,GAAG,GAAG,CAAC,CAAC;gBACR,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC9B,KAAK,MAAM,EAAE,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAC7B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;CACJ"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/records.ts – Mapping between the public {@link MemoryEntry} shape and
|
|
3
|
+
* the durable {@link StoredFactRecord}, plus the TTL and ordering rules every
|
|
4
|
+
* MemoryStore read shares.
|
|
5
|
+
*/
|
|
6
|
+
import type { RememberRecordInput } from '../storage/ScopedFactRepository.js';
|
|
7
|
+
import type { MemoryScope, StoredFactRecord } from '../storage/types.js';
|
|
8
|
+
import type { MemoryEntry, RememberOptions } from './types.js';
|
|
9
|
+
/** True once `ttlMs` has elapsed since the entry's (source) timestamp. */
|
|
10
|
+
export declare function isExpired(entry: {
|
|
11
|
+
timestamp: number;
|
|
12
|
+
ttlMs?: number;
|
|
13
|
+
}): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Newest first; same-millisecond ties break by the durable write sequence so
|
|
16
|
+
* ordering is deterministic (and survives restarts).
|
|
17
|
+
*/
|
|
18
|
+
export declare function newestFirst(a: StoredFactRecord, b: StoredFactRecord): number;
|
|
19
|
+
/** Non-expired records, newest first, as public entries. */
|
|
20
|
+
export declare function liveEntries(records: StoredFactRecord[]): MemoryEntry[];
|
|
21
|
+
export declare function toEntry(record: StoredFactRecord): MemoryEntry;
|
|
22
|
+
/** A `remember` call's options as a repository write (store default TTL applied). */
|
|
23
|
+
export declare function rememberInput(content: string, opts: RememberOptions | undefined, defaultTtlMs: number | undefined): RememberRecordInput;
|
|
24
|
+
/** An exported entry as an import record for `scope` (id/revision reassigned by the repository). */
|
|
25
|
+
export declare function toImportRecord(e: MemoryEntry, scope: MemoryScope): StoredFactRecord;
|
|
26
|
+
//# sourceMappingURL=records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/memory/records.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/D,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAG/E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAE5E;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAEtE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAgB7D;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAUvI;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAiBnF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/records.ts – Mapping between the public {@link MemoryEntry} shape and
|
|
3
|
+
* the durable {@link StoredFactRecord}, plus the TTL and ordering rules every
|
|
4
|
+
* MemoryStore read shares.
|
|
5
|
+
*/
|
|
6
|
+
/** True once `ttlMs` has elapsed since the entry's (source) timestamp. */
|
|
7
|
+
export function isExpired(entry) {
|
|
8
|
+
if (entry.ttlMs == null)
|
|
9
|
+
return false;
|
|
10
|
+
return Date.now() > entry.timestamp + entry.ttlMs;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Newest first; same-millisecond ties break by the durable write sequence so
|
|
14
|
+
* ordering is deterministic (and survives restarts).
|
|
15
|
+
*/
|
|
16
|
+
export function newestFirst(a, b) {
|
|
17
|
+
return b.timestamp - a.timestamp || b.seq - a.seq;
|
|
18
|
+
}
|
|
19
|
+
/** Non-expired records, newest first, as public entries. */
|
|
20
|
+
export function liveEntries(records) {
|
|
21
|
+
return records.filter((r) => !isExpired(r)).sort(newestFirst).map(toEntry);
|
|
22
|
+
}
|
|
23
|
+
export function toEntry(record) {
|
|
24
|
+
return {
|
|
25
|
+
key: record.key,
|
|
26
|
+
content: record.content,
|
|
27
|
+
timestamp: record.timestamp,
|
|
28
|
+
seq: record.seq,
|
|
29
|
+
ttlMs: record.ttlMs,
|
|
30
|
+
type: record.type,
|
|
31
|
+
tags: record.tags,
|
|
32
|
+
importance: record.importance,
|
|
33
|
+
revision: record.revision,
|
|
34
|
+
opId: record.opId,
|
|
35
|
+
scope: { ...record.scope },
|
|
36
|
+
provenance: record.provenance,
|
|
37
|
+
pendingSync: record.pendingSync,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** A `remember` call's options as a repository write (store default TTL applied). */
|
|
41
|
+
export function rememberInput(content, opts, defaultTtlMs) {
|
|
42
|
+
return {
|
|
43
|
+
content,
|
|
44
|
+
timestamp: opts?.timestamp,
|
|
45
|
+
ttlMs: opts?.ttlMs ?? defaultTtlMs,
|
|
46
|
+
type: opts?.type,
|
|
47
|
+
tags: opts?.tags,
|
|
48
|
+
importance: opts?.importance,
|
|
49
|
+
provenance: opts?.provenance,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** An exported entry as an import record for `scope` (id/revision reassigned by the repository). */
|
|
53
|
+
export function toImportRecord(e, scope) {
|
|
54
|
+
return {
|
|
55
|
+
id: '',
|
|
56
|
+
key: e.key,
|
|
57
|
+
scope,
|
|
58
|
+
content: e.content,
|
|
59
|
+
timestamp: e.timestamp,
|
|
60
|
+
seq: e.seq ?? 0,
|
|
61
|
+
revision: 0,
|
|
62
|
+
opId: e.opId ?? '',
|
|
63
|
+
ttlMs: e.ttlMs,
|
|
64
|
+
type: e.type,
|
|
65
|
+
tags: e.tags,
|
|
66
|
+
importance: e.importance,
|
|
67
|
+
provenance: e.provenance,
|
|
68
|
+
pendingSync: false,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/memory/records.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,KAA4C;IAClE,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,CAAmB,EAAE,CAAmB;IAChE,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,OAA2B;IACnD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAwB;IAC5C,OAAO;QACH,GAAG,EAAU,MAAM,CAAC,GAAG;QACvB,OAAO,EAAM,MAAM,CAAC,OAAO;QAC3B,SAAS,EAAI,MAAM,CAAC,SAAS;QAC7B,GAAG,EAAU,MAAM,CAAC,GAAG;QACvB,KAAK,EAAQ,MAAM,CAAC,KAAK;QACzB,IAAI,EAAS,MAAM,CAAC,IAAI;QACxB,IAAI,EAAS,MAAM,CAAC,IAAI;QACxB,UAAU,EAAG,MAAM,CAAC,UAAU;QAC9B,QAAQ,EAAK,MAAM,CAAC,QAAQ;QAC5B,IAAI,EAAS,MAAM,CAAC,IAAI;QACxB,KAAK,EAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE;QAChC,UAAU,EAAG,MAAM,CAAC,UAAU;QAC9B,WAAW,EAAE,MAAM,CAAC,WAAW;KAClC,CAAC;AACN,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAiC,EAAE,YAAgC;IAC9G,OAAO;QACH,OAAO;QACP,SAAS,EAAG,IAAI,EAAE,SAAS;QAC3B,KAAK,EAAO,IAAI,EAAE,KAAK,IAAI,YAAY;QACvC,IAAI,EAAQ,IAAI,EAAE,IAAI;QACtB,IAAI,EAAQ,IAAI,EAAE,IAAI;QACtB,UAAU,EAAE,IAAI,EAAE,UAAU;QAC5B,UAAU,EAAE,IAAI,EAAE,UAAU;KAC/B,CAAC;AACN,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,cAAc,CAAC,CAAc,EAAE,KAAkB;IAC7D,OAAO;QACH,EAAE,EAAW,EAAE;QACf,GAAG,EAAU,CAAC,CAAC,GAAG;QAClB,KAAK;QACL,OAAO,EAAM,CAAC,CAAC,OAAO;QACtB,SAAS,EAAI,CAAC,CAAC,SAAS;QACxB,GAAG,EAAU,CAAC,CAAC,GAAG,IAAI,CAAC;QACvB,QAAQ,EAAK,CAAC;QACd,IAAI,EAAS,CAAC,CAAC,IAAI,IAAI,EAAE;QACzB,KAAK,EAAQ,CAAC,CAAC,KAAK;QACpB,IAAI,EAAS,CAAC,CAAC,IAAI;QACnB,IAAI,EAAS,CAAC,CAAC,IAAI;QACnB,UAAU,EAAG,CAAC,CAAC,UAAU;QACzB,UAAU,EAAG,CAAC,CAAC,UAAU;QACzB,WAAW,EAAE,KAAK;KACrB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/ttlSweeper.ts – The background timer behind
|
|
3
|
+
* `MemoryStore.startTtlSweeper`: TTL is otherwise evaluated lazily on read, so
|
|
4
|
+
* an idle store would keep dead entries forever. (EVM-7)
|
|
5
|
+
*/
|
|
6
|
+
export declare class TtlSweeper {
|
|
7
|
+
private _timer;
|
|
8
|
+
/** Runs `sweep` every `intervalMs`. Idempotent while running. */
|
|
9
|
+
start(intervalMs: number, sweep: () => Promise<unknown>): void;
|
|
10
|
+
stop(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ttlSweeper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ttlSweeper.d.ts","sourceRoot":"","sources":["../../src/memory/ttlSweeper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAA+C;IAE7D,iEAAiE;IACjE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAY9D,IAAI,IAAI,IAAI;CAMf"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/ttlSweeper.ts – The background timer behind
|
|
3
|
+
* `MemoryStore.startTtlSweeper`: TTL is otherwise evaluated lazily on read, so
|
|
4
|
+
* an idle store would keep dead entries forever. (EVM-7)
|
|
5
|
+
*/
|
|
6
|
+
export class TtlSweeper {
|
|
7
|
+
_timer = null;
|
|
8
|
+
/** Runs `sweep` every `intervalMs`. Idempotent while running. */
|
|
9
|
+
start(intervalMs, sweep) {
|
|
10
|
+
if (this._timer)
|
|
11
|
+
return;
|
|
12
|
+
const timer = setInterval(() => { void sweep(); }, intervalMs);
|
|
13
|
+
// Don't keep a Node process alive just for the sweeper.
|
|
14
|
+
const maybeUnref = timer;
|
|
15
|
+
/* istanbul ignore else -- unref exists in Node; absent in the browser */
|
|
16
|
+
if (typeof maybeUnref.unref === 'function') {
|
|
17
|
+
maybeUnref.unref();
|
|
18
|
+
}
|
|
19
|
+
this._timer = timer;
|
|
20
|
+
}
|
|
21
|
+
stop() {
|
|
22
|
+
if (this._timer) {
|
|
23
|
+
clearInterval(this._timer);
|
|
24
|
+
this._timer = null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ttlSweeper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ttlSweeper.js","sourceRoot":"","sources":["../../src/memory/ttlSweeper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,UAAU;IACX,MAAM,GAA0C,IAAI,CAAC;IAE7D,iEAAiE;IACjE,KAAK,CAAC,UAAkB,EAAE,KAA6B;QACnD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/D,wDAAwD;QACxD,MAAM,UAAU,GAAG,KAA0C,CAAC;QAC9D,yEAAyE;QACzE,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACzC,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory/types.ts – The public shapes of {@link MemoryStore}: entries, recall
|
|
3
|
+
* results, write options and store options.
|
|
4
|
+
*/
|
|
5
|
+
import type { FactProvenance, FactStoragePort, MemoryScope } from '../storage/types.js';
|
|
6
|
+
export type FactType = 'text' | 'json' | 'number' | 'boolean';
|
|
7
|
+
export interface MemoryEntry {
|
|
8
|
+
key: string;
|
|
9
|
+
content: string;
|
|
10
|
+
timestamp: number;
|
|
11
|
+
/**
|
|
12
|
+
* Monotonic write sequence, used only to break `timestamp` ties so that
|
|
13
|
+
* ordering stays deterministic when several entries are written within the
|
|
14
|
+
* same millisecond (Date.now() resolution). Higher = written later.
|
|
15
|
+
* Optional for backward compatibility with entries persisted/imported
|
|
16
|
+
* before this field existed (those sort as seq 0).
|
|
17
|
+
*/
|
|
18
|
+
seq?: number;
|
|
19
|
+
/** Optional time-to-live in milliseconds. */
|
|
20
|
+
ttlMs?: number;
|
|
21
|
+
/** Semantic type of the stored value. Default: 'text'. */
|
|
22
|
+
type?: FactType;
|
|
23
|
+
/** Tags for grouping and filtering. */
|
|
24
|
+
tags?: string[];
|
|
25
|
+
/** Importance weight in the range 0–1. Default: 0.5. */
|
|
26
|
+
importance?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Durable revision of this record (the store generation that wrote it).
|
|
29
|
+
* Present on every record written through the repository; absent only on
|
|
30
|
+
* entries fabricated by callers for import.
|
|
31
|
+
*/
|
|
32
|
+
revision?: number;
|
|
33
|
+
/** Durable identity of the operation that wrote this record. */
|
|
34
|
+
opId?: string;
|
|
35
|
+
/** Ownership partition this entry was recalled from. */
|
|
36
|
+
scope?: MemoryScope;
|
|
37
|
+
/** Where the fact came from; preserved across export/import (M06). */
|
|
38
|
+
provenance?: FactProvenance;
|
|
39
|
+
/** True while a sync acknowledgement for this record is outstanding. */
|
|
40
|
+
pendingSync?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Which ranker produced a recall ordering. Matches the vocabulary the gateway's
|
|
44
|
+
* Evermind recall/validate surfaces already report, so a host can render one chip
|
|
45
|
+
* ("Semantic recall" / "Lexical recall (fallback)") regardless of which layer
|
|
46
|
+
* answered.
|
|
47
|
+
*/
|
|
48
|
+
export type RecallMethod = 'embedding' | 'lexical';
|
|
49
|
+
/** A recalled entry with its relevance score (higher = closer). */
|
|
50
|
+
export interface ScoredMemory {
|
|
51
|
+
entry: MemoryEntry;
|
|
52
|
+
score: number;
|
|
53
|
+
}
|
|
54
|
+
/** A ranked recall: the hits plus the ranker that ordered them. */
|
|
55
|
+
export interface RankedRecall {
|
|
56
|
+
hits: ScoredMemory[];
|
|
57
|
+
method: RecallMethod;
|
|
58
|
+
}
|
|
59
|
+
export interface RememberOptions {
|
|
60
|
+
/** Override the store-level defaultTtlMs for this entry. */
|
|
61
|
+
ttlMs?: number;
|
|
62
|
+
type?: FactType;
|
|
63
|
+
tags?: string[];
|
|
64
|
+
importance?: number;
|
|
65
|
+
/** Provenance to record with the fact (surface, importer, source time). */
|
|
66
|
+
provenance?: FactProvenance;
|
|
67
|
+
/** Explicit source timestamp (import/replay). Default: now. */
|
|
68
|
+
timestamp?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface MemoryStoreOptions {
|
|
71
|
+
/** IndexedDB database name. Default: 'ssmjs'. Ignored when `storage` is supplied. */
|
|
72
|
+
dbName?: string;
|
|
73
|
+
/** Key used for weight storage within the 'weights' object store. Default: 'ssmjs-weights'. */
|
|
74
|
+
weightsKey?: string;
|
|
75
|
+
/**
|
|
76
|
+
* IDBFactory to use instead of the global `indexedDB` (browser path only).
|
|
77
|
+
* fake-indexeddb is supported for tests, but it is IN-MEMORY: on Node.js,
|
|
78
|
+
* pass `storage` from `NodeFileStorageAdapter.open(...)` for durable facts.
|
|
79
|
+
*/
|
|
80
|
+
idbFactory?: IDBFactory;
|
|
81
|
+
/**
|
|
82
|
+
* Durable storage port backing this store (M01). When omitted, an
|
|
83
|
+
* IndexedDB adapter over `dbName` is used.
|
|
84
|
+
*/
|
|
85
|
+
storage?: FactStoragePort;
|
|
86
|
+
/**
|
|
87
|
+
* Explicit ownership partition for every fact in this store (M03).
|
|
88
|
+
* Default: the unbound scope — personal, never-connected memory.
|
|
89
|
+
*/
|
|
90
|
+
scope?: MemoryScope;
|
|
91
|
+
/**
|
|
92
|
+
* Enable the sync journal, tombstones and pendingSync tracking (M04/M06).
|
|
93
|
+
* Unsynced facts are then never evicted by `maxEntries`. Default: false
|
|
94
|
+
* (legacy retention semantics — nothing to sync, nothing pending).
|
|
95
|
+
*/
|
|
96
|
+
sync?: boolean;
|
|
97
|
+
/** Identity of this context for operation ids and cross-context notes. */
|
|
98
|
+
contextId?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Default TTL applied to new entries when no per-entry ttlMs is provided.
|
|
101
|
+
* Entries with an expired TTL are filtered from recallAll() and related methods.
|
|
102
|
+
*/
|
|
103
|
+
defaultTtlMs?: number;
|
|
104
|
+
/**
|
|
105
|
+
* Fact count at/above which semantic recall switches from an exact O(N)
|
|
106
|
+
* cosine scan to an O(log N) HNSW ANN index. Default 256 — small stores stay
|
|
107
|
+
* exact (simpler + faster), large stores stay fast. (EVM-1)
|
|
108
|
+
*/
|
|
109
|
+
annThreshold?: number;
|
|
110
|
+
/**
|
|
111
|
+
* Hard cap on stored facts. When set, each write evicts the lowest-value
|
|
112
|
+
* SYNCED entries (expired first, then lowest importance, then oldest) so the
|
|
113
|
+
* store stays bounded. Facts with unsynced operations are never evicted
|
|
114
|
+
* (M06). Unset = unbounded (legacy). (EVM-7)
|
|
115
|
+
*/
|
|
116
|
+
maxEntries?: number;
|
|
117
|
+
/**
|
|
118
|
+
* Max content→embedding vectors held in the LRU recall cache. Default 2000.
|
|
119
|
+
* (EVM-8 — bounded LRU instead of clear-on-overflow.)
|
|
120
|
+
*/
|
|
121
|
+
embedCacheMax?: number;
|
|
122
|
+
/**
|
|
123
|
+
* Minimum relevance (0..1) a hit must reach to be recalled by
|
|
124
|
+
* `recallSimilarScored` / `recallRanked` (and their wrappers). Below it, a
|
|
125
|
+
* weak match returns nothing rather than noise. Default 0 (off): recall
|
|
126
|
+
* returns its best-ranked hits exactly as before this option existed. Opt in
|
|
127
|
+
* with e.g. 0.05 to drop zero-overlap matches (a query sharing no token with
|
|
128
|
+
* any fact scores 0 on the lexical path).
|
|
129
|
+
*/
|
|
130
|
+
minRelevance?: number;
|
|
131
|
+
}
|
|
132
|
+
export interface SaveLoadRuntime {
|
|
133
|
+
save(opts?: {
|
|
134
|
+
storage: 'indexedDB';
|
|
135
|
+
key: string;
|
|
136
|
+
}): Promise<void>;
|
|
137
|
+
load(opts?: {
|
|
138
|
+
key: string;
|
|
139
|
+
}): Promise<boolean>;
|
|
140
|
+
}
|
|
141
|
+
export type SSMRuntimeRef = any;
|
|
142
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|