memo-grafter 0.2.7 → 0.2.8
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/USER_GUIDE.md +154 -9
- package/dist/MemoGrafter.d.ts +10 -5
- package/dist/MemoGrafter.d.ts.map +1 -1
- package/dist/MemoGrafter.js +46 -0
- package/dist/MemoGrafter.js.map +1 -1
- package/dist/MemoGrafterAgent.d.ts +8 -1
- package/dist/MemoGrafterAgent.d.ts.map +1 -1
- package/dist/MemoGrafterAgent.js +31 -2
- package/dist/MemoGrafterAgent.js.map +1 -1
- package/dist/crawler/DecayScoringPass.d.ts.map +1 -1
- package/dist/crawler/DecayScoringPass.js +6 -0
- package/dist/crawler/DecayScoringPass.js.map +1 -1
- package/dist/crawler/memoryMaintenance.d.ts +1 -0
- package/dist/crawler/memoryMaintenance.d.ts.map +1 -1
- package/dist/crawler/memoryMaintenance.js +2 -1
- package/dist/crawler/memoryMaintenance.js.map +1 -1
- package/dist/crawler/types.d.ts +1 -0
- package/dist/crawler/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/pipeline/GrafterPipeline.d.ts.map +1 -1
- package/dist/pipeline/GrafterPipeline.js +8 -3
- package/dist/pipeline/GrafterPipeline.js.map +1 -1
- package/dist/pipeline/RetrieverPipeline.js +2 -2
- package/dist/pipeline/RetrieverPipeline.js.map +1 -1
- package/dist/store/GraphStore.d.ts +8 -1
- package/dist/store/GraphStore.d.ts.map +1 -1
- package/dist/store/postgres-pgvector/GraphStore.d.ts +19 -1
- package/dist/store/postgres-pgvector/GraphStore.d.ts.map +1 -1
- package/dist/store/postgres-pgvector/GraphStore.js +371 -16
- package/dist/store/postgres-pgvector/GraphStore.js.map +1 -1
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/USER_GUIDE.md
CHANGED
|
@@ -185,6 +185,8 @@ Important fields:
|
|
|
185
185
|
- `messageRange`: source message range.
|
|
186
186
|
- `topicOrder`: chronological order.
|
|
187
187
|
- `driftScore`: topic-change score.
|
|
188
|
+
- `suppressed`: whether the topic is temporarily hidden from recall, grafting, crawler maintenance, and active topic reads.
|
|
189
|
+
- `suppressedAt`: timestamp for the latest suppression, or `null` when active.
|
|
188
190
|
- `agentColor`, `fleetId`, `agentId`: nullable fleet metadata.
|
|
189
191
|
|
|
190
192
|
Topic nodes are stored in `mg_topic_nodes`.
|
|
@@ -201,12 +203,14 @@ Important fields:
|
|
|
201
203
|
- `topicNodeId`: parent topic node ID.
|
|
202
204
|
- `tags`: optional normalized tags copied from the session or ingest call.
|
|
203
205
|
- `decayed`: whether the memory is stale.
|
|
206
|
+
- `forgotten`: whether the memory has been explicitly hidden by an application.
|
|
207
|
+
- `forgottenAt`: timestamp for the explicit forget action, or `null` when active.
|
|
204
208
|
- `hasConflict`: whether crawler maintenance found a conflicting active fact.
|
|
205
209
|
- `supersededBy`: newer memory ID when this memory has been replaced.
|
|
206
210
|
|
|
207
211
|
Memory nodes are stored in `mg_memory_nodes`.
|
|
208
212
|
|
|
209
|
-
`decayed`, `hasConflict`, and `supersededBy` are maintenance fields. Normal ingestion creates active memories. Optional crawler passes can later annotate existing memory rows, but they do not delete rows or rewrite topic summaries.
|
|
213
|
+
`decayed`, `hasConflict`, and `supersededBy` are maintenance fields. `forgotten` is an application-controlled lifecycle field. Normal ingestion creates active memories. Optional crawler passes can later annotate existing memory rows, but they do not delete rows or rewrite topic summaries.
|
|
210
214
|
|
|
211
215
|
### Graph Edges
|
|
212
216
|
|
|
@@ -241,7 +245,7 @@ There are two common forms:
|
|
|
241
245
|
- Preview memory with `graft()`.
|
|
242
246
|
- Copy memory into another chatbot with `absorbFromAgent()` or `ingestGraftedNodes()`.
|
|
243
247
|
|
|
244
|
-
When topic nodes are absorbed into another session, MemoGrafter also copies their active memory nodes so targeted recall can find the transferred facts. Copied memory rows get fresh IDs, keep their existing embeddings, and are copied as active memories only when the source row is not decayed or
|
|
248
|
+
When topic nodes are absorbed into another session, MemoGrafter also copies their active memory nodes so targeted recall can find the transferred facts. Copied memory rows get fresh IDs, keep their existing embeddings, and are copied as active memories only when the source row is not decayed, superseded, forgotten, or attached to a suppressed topic.
|
|
245
249
|
|
|
246
250
|
Absorbed topic nodes are also registered in `mg_graft_registry`. The registry records the destination session, copied node ID, source session ID, source node ID, and graft timestamp so applications can inspect provenance or remove a graft later.
|
|
247
251
|
|
|
@@ -334,6 +338,117 @@ await agent.clearSession();
|
|
|
334
338
|
|
|
335
339
|
This waits for pending ingestion, clears the agent's local in-memory history, removes stored messages, topic nodes, memory nodes, graph edges, segments, and resets the session ingest cursor. It is a destructive operation and is not part of normal `invoke()` processing.
|
|
336
340
|
|
|
341
|
+
### Memory Lifecycle Controls
|
|
342
|
+
|
|
343
|
+
Use lifecycle controls when your application needs user-controlled memory management without physically deleting graph rows by default.
|
|
344
|
+
|
|
345
|
+
Forget a single memory node:
|
|
346
|
+
|
|
347
|
+
```ts
|
|
348
|
+
const recall = await agent.recall("food preferences");
|
|
349
|
+
const memoryId = recall.facts[0]!.id;
|
|
350
|
+
|
|
351
|
+
const changed = await agent.forget(memoryId);
|
|
352
|
+
console.log(changed); // true when the memory was newly marked forgotten
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Forget several memory nodes at once:
|
|
356
|
+
|
|
357
|
+
```ts
|
|
358
|
+
const changedCount = await agent.forgetMany([
|
|
359
|
+
"memory-id-a",
|
|
360
|
+
"memory-id-b",
|
|
361
|
+
]);
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
Suppress a topic temporarily:
|
|
365
|
+
|
|
366
|
+
```ts
|
|
367
|
+
const nodes = await agent.getActiveNodes();
|
|
368
|
+
const topicId = nodes[0]!.id;
|
|
369
|
+
|
|
370
|
+
await agent.suppressTopic(topicId);
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
Restore a suppressed topic:
|
|
374
|
+
|
|
375
|
+
```ts
|
|
376
|
+
await agent.restoreTopic(topicId);
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Forgotten memories stay in `mg_memory_nodes` with `forgotten = TRUE` and `forgotten_at` set. Suppressed topics stay in `mg_topic_nodes` with `suppressed = TRUE` and `suppressed_at` set. These rows are excluded from targeted recall, invoke-time recall, graft prompt assembly, semantic graft seed selection, absorption, active topic listing, and crawler maintenance until restored where applicable.
|
|
380
|
+
|
|
381
|
+
`forget()` and `forgetMany()` are one-way soft lifecycle operations. There is no built-in `restoreMemory()` API because user-requested memory deletion and privacy flows usually need conservative behavior. Applications that require undo or hard deletion can implement that policy at the storage layer.
|
|
382
|
+
|
|
383
|
+
`getGraphSnapshot()` remains useful for audit and visualization. Snapshot memory reads include forgotten, decayed, conflicted, and superseded rows, and snapshot topic reads include suppressed topics, so UIs can display lifecycle state explicitly.
|
|
384
|
+
|
|
385
|
+
The lower-level `MemoGrafter` class exposes the same methods when you manage sessions yourself:
|
|
386
|
+
|
|
387
|
+
```ts
|
|
388
|
+
await memo.forget(memoryId);
|
|
389
|
+
await memo.forgetMany(memoryIds);
|
|
390
|
+
await memo.suppressTopic(topicId);
|
|
391
|
+
await memo.restoreTopic(topicId);
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Memory History And Diff
|
|
395
|
+
|
|
396
|
+
Use memory history APIs when your application needs audit trails, explainability, or debugging for facts that changed over time.
|
|
397
|
+
|
|
398
|
+
Look up history from a specific memory node:
|
|
399
|
+
|
|
400
|
+
```ts
|
|
401
|
+
const history = await agent.getMemoryHistory(memoryId);
|
|
402
|
+
|
|
403
|
+
for (const entry of history.entries) {
|
|
404
|
+
console.log(entry.versionIndex);
|
|
405
|
+
console.log(entry.status);
|
|
406
|
+
console.log(entry.memory.value);
|
|
407
|
+
console.log(entry.supersededBy);
|
|
408
|
+
console.log(entry.supersedes);
|
|
409
|
+
console.log(entry.conflictsWith);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
console.log(history.currentMemory);
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Look up history by fact key:
|
|
416
|
+
|
|
417
|
+
```ts
|
|
418
|
+
const history = await agent.getMemoryHistory("user", "location");
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
`MemoGrafterAgent` scopes history lookups to the current session. If you manage sessions yourself with `MemoGrafter`, pass the session explicitly:
|
|
422
|
+
|
|
423
|
+
```ts
|
|
424
|
+
const history = await memo.getMemoryHistory("user", "location", {
|
|
425
|
+
sessionId,
|
|
426
|
+
});
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
Compare two memory versions:
|
|
430
|
+
|
|
431
|
+
```ts
|
|
432
|
+
const diff = await agent.getMemoryDiff(oldMemoryId, newMemoryId);
|
|
433
|
+
|
|
434
|
+
console.log(diff.changedFields);
|
|
435
|
+
console.log(diff.relationship.supersededBy);
|
|
436
|
+
console.log(diff.relationship.updateEdges);
|
|
437
|
+
console.log(diff.relationship.conflictEdges);
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
History results are read-only and derived from existing memory rows plus `supersededBy`, `updates`, and `conflicts` metadata. They intentionally include superseded, decayed, forgotten, and suppressed-topic memories, even though those rows are excluded from normal recall and grafting.
|
|
441
|
+
|
|
442
|
+
`MemoryHistoryEntry.status` is one of:
|
|
443
|
+
|
|
444
|
+
- `"active"`: not superseded, decayed, forgotten, or conflicting.
|
|
445
|
+
- `"superseded"`: the memory has `supersededBy` set.
|
|
446
|
+
- `"conflicting"`: the memory has `hasConflict` or a `conflicts` edge.
|
|
447
|
+
- `"decayed"`: crawler decay marked the memory stale.
|
|
448
|
+
- `"forgotten"`: an application explicitly forgot the memory.
|
|
449
|
+
|
|
450
|
+
`getMemoryDiff()` is structural. It compares stored fields such as `value`, `confidence`, lifecycle flags, tags, source metadata, and timestamps. It does not call an LLM or generate prose explanations.
|
|
451
|
+
|
|
337
452
|
### Session Tags
|
|
338
453
|
|
|
339
454
|
Use session tags when you want to organize memory by project, planning area, week, domain, or worker route.
|
|
@@ -418,7 +533,7 @@ const projectMemory = await agent.recall("deployment decisions", {
|
|
|
418
533
|
});
|
|
419
534
|
```
|
|
420
535
|
|
|
421
|
-
This can return matching active memories from older or different sessions with the same tag. If your development database contains repeated smoke-test runs, you may see more than one matching fact because the older tagged rows are still present.
|
|
536
|
+
This can return matching active memories from older or different sessions with the same tag. Active recall excludes decayed, superseded, forgotten, and suppressed-topic memories. If your development database contains repeated smoke-test runs, you may see more than one matching fact because the older tagged rows are still present.
|
|
422
537
|
|
|
423
538
|
`MemoGrafterAgent.invoke()` also calls `recall()` internally before answering when the session has topic nodes. In that automatic path, the returned `systemPrompt` is pinned as a single system message before the recent raw chat window. Automatic recall uses `inject.recallLimit` and `inject.recallMinSimilarity`, defaulting to `6` and `0.55`.
|
|
424
539
|
|
|
@@ -444,9 +559,9 @@ console.log(snapshot.capturedAt);
|
|
|
444
559
|
|
|
445
560
|
- `sessionId`: current agent session ID.
|
|
446
561
|
- `nodes`: active topic nodes for the session.
|
|
447
|
-
- `snapshotNodes`:
|
|
562
|
+
- `snapshotNodes`: topic nodes wrapped with provenance metadata when a node came from a graft, including suppressed topics for audit views.
|
|
448
563
|
- `edges`: topic edges where either endpoint belongs to a session topic node.
|
|
449
|
-
- `memories`: all memory nodes for the session, including decayed or superseded rows.
|
|
564
|
+
- `memories`: all memory nodes for the session, including forgotten, decayed, conflicted, or superseded rows.
|
|
450
565
|
- `memoryEdges`: memory-level edges such as `semantic`, `conflicts`, `updates`, and `related`.
|
|
451
566
|
- `capturedAt`: ISO timestamp for when the snapshot was produced.
|
|
452
567
|
|
|
@@ -454,7 +569,7 @@ Each `snapshotNodes` entry contains the topic `node` and an optional `graftOrigi
|
|
|
454
569
|
|
|
455
570
|
This method is read-only. It does not include raw `mg_message_buffer` content and does not add rendering, layout, or color decisions. Like `getActiveNodes()` and `getActiveSegments()`, it waits for the agent's pending ingest work before reading. If called immediately after `invoke()` in queue mode, it waits for the current ingest job to settle before returning.
|
|
456
571
|
|
|
457
|
-
Graph snapshots intentionally include stale and maintenance metadata so visualizers can show memory lifecycle state. For example, a UI can fade `decayed` memories, show `hasConflict` badges, draw `conflicts` edges between contradictory facts,
|
|
572
|
+
Graph snapshots intentionally include stale and maintenance metadata so visualizers can show memory lifecycle state. For example, a UI can hide or label `forgotten` memories, fade `decayed` memories, show `hasConflict` badges, draw `conflicts` edges between contradictory facts, draw `updates` edges from the current fact to the older fact it replaced, and show suppressed topics separately from active topics.
|
|
458
573
|
|
|
459
574
|
Read active topic nodes:
|
|
460
575
|
|
|
@@ -553,6 +668,8 @@ Active memory facts:
|
|
|
553
668
|
|
|
554
669
|
This keeps history intact while telling the downstream model which fact is current.
|
|
555
670
|
|
|
671
|
+
Suppressed topics are not included in graft prompts, even if their IDs are passed explicitly. Forgotten memories are not included as active facts or as replacement details in maintenance notes.
|
|
672
|
+
|
|
556
673
|
## Maintaining Memory With The Crawler
|
|
557
674
|
|
|
558
675
|
`MemoGrafterCrawler` is an optional graph maintenance worker. It can run once on demand or on a simple in-process interval. It does not use Redis, BullMQ, OpenAI, embeddings, or LLMs for the built-in conflict/versioning/decay passes.
|
|
@@ -608,6 +725,7 @@ The built-in conflict and versioning passes use separate deterministic classifie
|
|
|
608
725
|
- a group conflicts when it has different normalized `value` strings and the newest value does not contain an explicit update cue;
|
|
609
726
|
- a group versions only when its newest value contains an explicit replacement or update cue such as `actually`, `now`, `changed to`, or `instead`;
|
|
610
727
|
- decayed memories are skipped;
|
|
728
|
+
- forgotten memories and memories attached to suppressed topics are skipped;
|
|
611
729
|
- already superseded memories are skipped;
|
|
612
730
|
- broad topic memories with generic subject/predicate pairs are skipped unless they match a recognized competing trip-plan pattern;
|
|
613
731
|
- version replacement candidates are selected by `createdAt`;
|
|
@@ -624,7 +742,7 @@ recency_factor = exp(-(ln(2) / half_life_days) * age_days)
|
|
|
624
742
|
decay_score = confidence * recency_factor
|
|
625
743
|
```
|
|
626
744
|
|
|
627
|
-
If `decay_score < minScore`, the memory is marked `decayed: true`. Superseded memories and already decayed memories are skipped. Conservative defaults are used when options are omitted:
|
|
745
|
+
If `decay_score < minScore`, the memory is marked `decayed: true`. Superseded memories, forgotten memories, and already decayed memories are skipped. Conservative defaults are used when options are omitted:
|
|
628
746
|
|
|
629
747
|
```ts
|
|
630
748
|
new DecayScoringPass({
|
|
@@ -647,7 +765,7 @@ When explicit replacements are found:
|
|
|
647
765
|
- an `updates` edge is created as `newer_memory --updates--> older_memory`.
|
|
648
766
|
- stale active memories can be marked `decayed: true` by the decay pass.
|
|
649
767
|
|
|
650
|
-
Crawler maintenance is non-destructive. It annotates existing memory rows and creates memory edges. It does not delete nodes, does not rebuild topics, and does not rewrite topic summaries.
|
|
768
|
+
Crawler maintenance is non-destructive. It annotates existing memory rows and creates memory edges. It does not delete nodes, does not rebuild topics, and does not rewrite topic summaries. Forgotten memories and memories attached to suppressed topics are ignored by maintenance scans.
|
|
651
769
|
|
|
652
770
|
Existing incorrect conflict edges are not automatically deleted. If an older crawler run created a false-positive edge, handle cleanup with a future explicit pruning pass or filter displayed memory edges to active memories in your app.
|
|
653
771
|
|
|
@@ -689,7 +807,7 @@ const response = await writingBot.invoke(
|
|
|
689
807
|
console.log(response);
|
|
690
808
|
```
|
|
691
809
|
|
|
692
|
-
Absorbing copies selected topic nodes into the target session and creates `grafted` edges back to their source nodes. It also copies active memory facts attached to those topic nodes into the target session so future `recall()` and `invoke()` calls can surface the transferred context. Decayed or
|
|
810
|
+
Absorbing copies selected topic nodes into the target session and creates `grafted` edges back to their source nodes. It also copies active memory facts attached to those topic nodes into the target session so future `recall()` and `invoke()` calls can surface the transferred context. Decayed, superseded, forgotten, or suppressed-topic source memories are not copied.
|
|
693
811
|
|
|
694
812
|
Each copied topic node is recorded in the graft registry. Registry entries let you answer where a graft came from and which copied destination node owns it.
|
|
695
813
|
|
|
@@ -1030,6 +1148,18 @@ Run the semantic grafting smoke with a real PostgreSQL database:
|
|
|
1030
1148
|
npx tsx --env-file=.env ./tests/manual/graft/graft-by-relevance-smoke.ts
|
|
1031
1149
|
```
|
|
1032
1150
|
|
|
1151
|
+
Run the memory lifecycle smoke with a real PostgreSQL database and `OPENAI_API_KEY`:
|
|
1152
|
+
|
|
1153
|
+
```powershell
|
|
1154
|
+
npx tsx --env-file=.env ./tests/manual/graft/memory-lifecycle-smoke.ts
|
|
1155
|
+
```
|
|
1156
|
+
|
|
1157
|
+
Run the memory history smoke with a real PostgreSQL database:
|
|
1158
|
+
|
|
1159
|
+
```powershell
|
|
1160
|
+
npx tsx --env-file=.env ./tests/manual/graft/memory-history-smoke.ts
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1033
1163
|
Use the forward-slash path in PowerShell. An unquoted backslash path can be collapsed before `tsx` receives it.
|
|
1034
1164
|
|
|
1035
1165
|
The smoke creates two tagged sessions, writes one memory into each, verifies current-session tag filtering with `getActiveNodes()`, and verifies cross-session project recall with `recall(..., { scope: "tagged" })`. If you run it repeatedly against the same database, tagged recall can return rows from previous smoke runs because those historical sessions are still present.
|
|
@@ -1405,6 +1535,7 @@ Practical notes:
|
|
|
1405
1535
|
- Tune `tokenBudget` to control prompt size and cost.
|
|
1406
1536
|
- Use queue mode if ingestion becomes slow.
|
|
1407
1537
|
- Use `clearSession()` only for intentional resets; normal ingestion preserves the graph incrementally.
|
|
1538
|
+
- Use `forget()`, `forgetMany()`, `suppressTopic()`, and `restoreTopic()` for user-controlled memory lifecycle flows.
|
|
1408
1539
|
- Use the optional recall cache for long sessions with repeated direct or invoke-time recall.
|
|
1409
1540
|
- Store your own user/session mapping outside MemoGrafter.
|
|
1410
1541
|
- Call `close()` during graceful shutdown.
|
|
@@ -1453,6 +1584,13 @@ Useful `GraphStore` inspection methods:
|
|
|
1453
1584
|
- `getMemoryEdgesBySession(sessionId)`
|
|
1454
1585
|
- `getSessionNodeCount(sessionId)`
|
|
1455
1586
|
- `getSessionIngestState(sessionId)`
|
|
1587
|
+
- `forgetMemory(memoryId)`
|
|
1588
|
+
- `forgetMemories(memoryIds)`
|
|
1589
|
+
- `suppressTopic(topicId)`
|
|
1590
|
+
- `restoreTopic(topicId)`
|
|
1591
|
+
- `getMemoryHistoryById(memoryId, options?)`
|
|
1592
|
+
- `getMemoryHistoryByFact(subject, predicate, options?)`
|
|
1593
|
+
- `getMemoryDiff(fromMemoryId, toMemoryId)`
|
|
1456
1594
|
|
|
1457
1595
|
Common `MemoGrafterAgent` methods:
|
|
1458
1596
|
|
|
@@ -1468,6 +1606,13 @@ Common `MemoGrafterAgent` methods:
|
|
|
1468
1606
|
- `setSessionTags(tags)`: replace tags on the current session and apply them to future ingested memories.
|
|
1469
1607
|
- `getSessionTags()`: read the current agent's normalized session tags.
|
|
1470
1608
|
- `clearSession()`: explicitly clear local history and stored session memory.
|
|
1609
|
+
- `forget(memoryId)`: soft-forget a memory node so it is excluded from future recall, grafting, absorption, and crawler maintenance.
|
|
1610
|
+
- `forgetMany(memoryIds)`: soft-forget several memory nodes and return the number changed.
|
|
1611
|
+
- `suppressTopic(topicId)`: hide a topic from active reads, recall, grafting, absorption, and crawler maintenance.
|
|
1612
|
+
- `restoreTopic(topicId)`: make a suppressed topic active again.
|
|
1613
|
+
- `getMemoryHistory(memoryId)`: inspect the current session lineage for a specific memory.
|
|
1614
|
+
- `getMemoryHistory(subject, predicate)`: inspect the current session lineage for a fact key.
|
|
1615
|
+
- `getMemoryDiff(fromMemoryId, toMemoryId)`: compare two memory versions and their maintenance relationship.
|
|
1471
1616
|
- `recall(query, options?)`: retrieve structured memory by semantic query, optionally filtered by tags.
|
|
1472
1617
|
- `graft(topicIds?)`: preview memory injection.
|
|
1473
1618
|
- `graftByRelevance(query, options?)`: preview memory injection selected by semantic topic-node relevance.
|
package/dist/MemoGrafter.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Redis } from "ioredis";
|
|
|
2
2
|
import { MemoGrafterFleet } from "./fleet/MemoGrafterFleet.js";
|
|
3
3
|
import type { MemoGrafterFleetOptions } from "./fleet/types.js";
|
|
4
4
|
import type { GraphStore } from "./store/index.js";
|
|
5
|
-
import type { AbsorbFromAgentOptions, EmbedAdapter, GraftByRelevanceOptions, IngestOptions, IngestTextOptions, InjectionResult, LLMAdapter, MemoGrafterConfig, Message, TopicNode, TopicSegment } from "./types.js";
|
|
5
|
+
import type { AbsorbFromAgentOptions, EmbedAdapter, GraftByRelevanceOptions, IngestOptions, IngestTextOptions, InjectionResult, LLMAdapter, MemoryDiff, MemoryHistoryOptions, MemoryHistoryResult, MemoGrafterConfig, Message, TagFilterOptions, TopicNode, TopicSegment } from "./types.js";
|
|
6
6
|
export declare class MemoGrafter {
|
|
7
7
|
readonly llm: LLMAdapter;
|
|
8
8
|
readonly embedder: EmbedAdapter;
|
|
@@ -20,14 +20,18 @@ export declare class MemoGrafter {
|
|
|
20
20
|
enqueueIngest(messages: Message[], sessionId: string, options?: IngestOptions): Promise<void>;
|
|
21
21
|
ingestText(text: string, sessionId: string, options?: IngestTextOptions & IngestOptions): Promise<TopicNode[]>;
|
|
22
22
|
enqueueTextIngest(text: string, sessionId: string, options?: IngestTextOptions & IngestOptions): Promise<void>;
|
|
23
|
-
getTopics(sessionId: string, options?: {
|
|
24
|
-
tags?: string[];
|
|
25
|
-
tagMode?: "all" | "any";
|
|
26
|
-
}): Promise<{
|
|
23
|
+
getTopics(sessionId: string, options?: TagFilterOptions): Promise<{
|
|
27
24
|
nodes: TopicNode[];
|
|
28
25
|
segments: TopicSegment[];
|
|
29
26
|
}>;
|
|
30
27
|
inject(sessionId: string, topicIds: string[]): Promise<InjectionResult>;
|
|
28
|
+
forget(memoryId: string): Promise<boolean>;
|
|
29
|
+
forgetMany(memoryIds: string[]): Promise<number>;
|
|
30
|
+
suppressTopic(topicId: string): Promise<boolean>;
|
|
31
|
+
restoreTopic(topicId: string): Promise<boolean>;
|
|
32
|
+
getMemoryHistory(memoryId: string, options?: MemoryHistoryOptions): Promise<MemoryHistoryResult>;
|
|
33
|
+
getMemoryHistory(subject: string, predicate: string, options?: MemoryHistoryOptions): Promise<MemoryHistoryResult>;
|
|
34
|
+
getMemoryDiff(fromMemoryId: string, toMemoryId: string): Promise<MemoryDiff>;
|
|
31
35
|
graftByRelevance(sessionId: string, query: string, options?: GraftByRelevanceOptions): Promise<InjectionResult>;
|
|
32
36
|
ingestGraftedNodes(nodes: TopicNode[], targetSessionId: string): Promise<TopicNode[]>;
|
|
33
37
|
selectNodesForAbsorb(sourceSessionId: string, options: AbsorbFromAgentOptions): Promise<TopicNode[]>;
|
|
@@ -36,5 +40,6 @@ export declare class MemoGrafter {
|
|
|
36
40
|
close(): Promise<void>;
|
|
37
41
|
private assertServerEnvironment;
|
|
38
42
|
private toTextPipelineOptions;
|
|
43
|
+
private clearRecallCache;
|
|
39
44
|
}
|
|
40
45
|
//# sourceMappingURL=MemoGrafter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafter.d.ts","sourceRoot":"","sources":["../src/MemoGrafter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,aAAa,EAEb,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,MAAM,EAAE,iBAAiB;IAuDrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQjG,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAI9F,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASvG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAiB,GAAG,aAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAS5G,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAiB,GAAG,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,
|
|
1
|
+
{"version":3,"file":"MemoGrafter.d.ts","sourceRoot":"","sources":["../src/MemoGrafter.ts"],"names":[],"mappings":"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"}
|
package/dist/MemoGrafter.js
CHANGED
|
@@ -107,6 +107,39 @@ export class MemoGrafter {
|
|
|
107
107
|
inject(sessionId, topicIds) {
|
|
108
108
|
return this.grafterPipeline.run(sessionId, topicIds);
|
|
109
109
|
}
|
|
110
|
+
async forget(memoryId) {
|
|
111
|
+
const changed = await this.store.forgetMemory(memoryId);
|
|
112
|
+
if (changed)
|
|
113
|
+
await this.clearRecallCache();
|
|
114
|
+
return changed;
|
|
115
|
+
}
|
|
116
|
+
async forgetMany(memoryIds) {
|
|
117
|
+
const changed = await this.store.forgetMemories(memoryIds);
|
|
118
|
+
if (changed > 0)
|
|
119
|
+
await this.clearRecallCache();
|
|
120
|
+
return changed;
|
|
121
|
+
}
|
|
122
|
+
async suppressTopic(topicId) {
|
|
123
|
+
const changed = await this.store.suppressTopic(topicId);
|
|
124
|
+
if (changed)
|
|
125
|
+
await this.clearRecallCache();
|
|
126
|
+
return changed;
|
|
127
|
+
}
|
|
128
|
+
async restoreTopic(topicId) {
|
|
129
|
+
const changed = await this.store.restoreTopic(topicId);
|
|
130
|
+
if (changed)
|
|
131
|
+
await this.clearRecallCache();
|
|
132
|
+
return changed;
|
|
133
|
+
}
|
|
134
|
+
getMemoryHistory(memoryIdOrSubject, predicateOrOptions, options = {}) {
|
|
135
|
+
if (typeof predicateOrOptions === "string") {
|
|
136
|
+
return this.store.getMemoryHistoryByFact(memoryIdOrSubject, predicateOrOptions, options);
|
|
137
|
+
}
|
|
138
|
+
return this.store.getMemoryHistoryById(memoryIdOrSubject, predicateOrOptions ?? {});
|
|
139
|
+
}
|
|
140
|
+
getMemoryDiff(fromMemoryId, toMemoryId) {
|
|
141
|
+
return this.store.getMemoryDiff(fromMemoryId, toMemoryId);
|
|
142
|
+
}
|
|
110
143
|
async graftByRelevance(sessionId, query, options = {}) {
|
|
111
144
|
const embedding = await this.embedder.embed(query);
|
|
112
145
|
const seedNodes = await this.store.getSimilarNodes(embedding, sessionId, {
|
|
@@ -172,5 +205,18 @@ export class MemoGrafter {
|
|
|
172
205
|
sourceType: "document",
|
|
173
206
|
};
|
|
174
207
|
}
|
|
208
|
+
async clearRecallCache() {
|
|
209
|
+
if (!this.recallCache)
|
|
210
|
+
return;
|
|
211
|
+
try {
|
|
212
|
+
const keys = await this.recallCache.keys("mg:recall:*");
|
|
213
|
+
if (keys.length > 0) {
|
|
214
|
+
await this.recallCache.del(...keys);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
console.warn("MemoGrafter recall cache invalidation warning:", error);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
175
221
|
}
|
|
176
222
|
//# sourceMappingURL=MemoGrafter.js.map
|
package/dist/MemoGrafter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafter.js","sourceRoot":"","sources":["../src/MemoGrafter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoGrafter.js","sourceRoot":"","sources":["../src/MemoGrafter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AbsorbFromAgentOptions, GraftByRelevanceOptions, GraftRegistryEntry, GraphSnapshot, InjectionResult, IngestTextOptions, MemoGrafterConfig, Message, RetrievalResult, RetrieverConfig, TagFilterOptions, TopicNode, TopicSegment } from "./types.js";
|
|
1
|
+
import type { AbsorbFromAgentOptions, GraftByRelevanceOptions, GraftRegistryEntry, GraphSnapshot, InjectionResult, IngestTextOptions, MemoryDiff, MemoryHistoryResult, MemoGrafterConfig, Message, RetrievalResult, RetrieverConfig, TagFilterOptions, TopicNode, TopicSegment } from "./types.js";
|
|
2
2
|
export declare class MemoGrafterAgent {
|
|
3
3
|
private readonly core;
|
|
4
4
|
private readonly sessionId;
|
|
@@ -24,6 +24,13 @@ export declare class MemoGrafterAgent {
|
|
|
24
24
|
getSessionTags(): string[];
|
|
25
25
|
getGraftRegistry(): Promise<GraftRegistryEntry[]>;
|
|
26
26
|
removeGraft(nodeId: string): Promise<void>;
|
|
27
|
+
forget(memoryId: string): Promise<boolean>;
|
|
28
|
+
forgetMany(memoryIds: string[]): Promise<number>;
|
|
29
|
+
suppressTopic(topicId: string): Promise<boolean>;
|
|
30
|
+
restoreTopic(topicId: string): Promise<boolean>;
|
|
31
|
+
getMemoryHistory(memoryId: string): Promise<MemoryHistoryResult>;
|
|
32
|
+
getMemoryHistory(subject: string, predicate: string): Promise<MemoryHistoryResult>;
|
|
33
|
+
getMemoryDiff(fromMemoryId: string, toMemoryId: string): Promise<MemoryDiff>;
|
|
27
34
|
clearSession(): Promise<void>;
|
|
28
35
|
graft(topicIds?: string[]): Promise<InjectionResult>;
|
|
29
36
|
graftByRelevance(query: string, options?: GraftByRelevanceOptions): Promise<InjectionResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafterAgent.d.ts","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,aAAa,CAAoC;gBAE7C,MAAM,EAAE,iBAAiB;IASrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBlD,UAAU,IAAI,OAAO,EAAE;IAIvB,YAAY,IAAI,MAAM;IAItB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlE,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMpE,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAM5C,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAmC1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,cAAc,IAAI,MAAM,EAAE;IAIpB,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAKjD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAOpD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,eAAe,CAAC;IAKtG,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAItD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB9E,eAAe,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoGrafterAgent.d.ts","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/MemoGrafterAgent.js
CHANGED
|
@@ -81,7 +81,7 @@ export class MemoGrafterAgent {
|
|
|
81
81
|
}
|
|
82
82
|
async getGraphSnapshot() {
|
|
83
83
|
await this.pendingIngest;
|
|
84
|
-
const { nodes } = await this.core.getTopics(this.sessionId);
|
|
84
|
+
const { nodes } = await this.core.getTopics(this.sessionId, { includeSuppressed: true });
|
|
85
85
|
const edges = await this.core.store.getEdgesBySession(this.sessionId);
|
|
86
86
|
const memories = await this.core.store.getMemoriesBySession(this.sessionId);
|
|
87
87
|
const memoryEdges = await this.core.store.getMemoryEdgesBySession(this.sessionId);
|
|
@@ -132,6 +132,33 @@ export class MemoGrafterAgent {
|
|
|
132
132
|
}
|
|
133
133
|
await this.core.store.deleteNode(nodeId, this.sessionId);
|
|
134
134
|
}
|
|
135
|
+
async forget(memoryId) {
|
|
136
|
+
await this.pendingIngest;
|
|
137
|
+
return this.core.forget(memoryId);
|
|
138
|
+
}
|
|
139
|
+
async forgetMany(memoryIds) {
|
|
140
|
+
await this.pendingIngest;
|
|
141
|
+
return this.core.forgetMany(memoryIds);
|
|
142
|
+
}
|
|
143
|
+
async suppressTopic(topicId) {
|
|
144
|
+
await this.pendingIngest;
|
|
145
|
+
return this.core.suppressTopic(topicId);
|
|
146
|
+
}
|
|
147
|
+
async restoreTopic(topicId) {
|
|
148
|
+
await this.pendingIngest;
|
|
149
|
+
return this.core.restoreTopic(topicId);
|
|
150
|
+
}
|
|
151
|
+
async getMemoryHistory(memoryIdOrSubject, predicate) {
|
|
152
|
+
await this.pendingIngest;
|
|
153
|
+
if (predicate) {
|
|
154
|
+
return this.core.getMemoryHistory(memoryIdOrSubject, predicate, { sessionId: this.sessionId });
|
|
155
|
+
}
|
|
156
|
+
return this.core.getMemoryHistory(memoryIdOrSubject, { sessionId: this.sessionId });
|
|
157
|
+
}
|
|
158
|
+
async getMemoryDiff(fromMemoryId, toMemoryId) {
|
|
159
|
+
await this.pendingIngest;
|
|
160
|
+
return this.core.getMemoryDiff(fromMemoryId, toMemoryId);
|
|
161
|
+
}
|
|
135
162
|
async clearSession() {
|
|
136
163
|
await this.pendingIngest;
|
|
137
164
|
await this.core.store.clearSession(this.sessionId);
|
|
@@ -165,7 +192,9 @@ export class MemoGrafterAgent {
|
|
|
165
192
|
}
|
|
166
193
|
async absorbFromAgent(sourceAgent, options = {}) {
|
|
167
194
|
const nodes = await sourceAgent.core.selectNodesForAbsorb(sourceAgent.getSessionId(), options);
|
|
168
|
-
|
|
195
|
+
const registry = await this.core.store.getGraftRegistry(this.sessionId);
|
|
196
|
+
const alreadyAbsorbedSourceIds = new Set(registry.map((entry) => entry.sourceNodeId));
|
|
197
|
+
return this.core.absorbNodes(nodes.filter((node) => !alreadyAbsorbedSourceIds.has(node.id)), this.sessionId);
|
|
169
198
|
}
|
|
170
199
|
enqueueBackgroundIngest() {
|
|
171
200
|
const historySnapshot = [...this.ingestionHistory];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafterAgent.js","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoGrafterAgent.js","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecayScoringPass.d.ts","sourceRoot":"","sources":["../../src/crawler/DecayScoringPass.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErF,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAKD,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,IAAI,mBAAmB;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,OAAO,GAAE,uBAA4B;IAe3C,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"DecayScoringPass.d.ts","sourceRoot":"","sources":["../../src/crawler/DecayScoringPass.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErF,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAKD,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,IAAI,mBAAmB;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,OAAO,GAAE,uBAA4B;IAe3C,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA4DnE"}
|
|
@@ -29,9 +29,14 @@ export class DecayScoringPass {
|
|
|
29
29
|
let nodesDecayed = 0;
|
|
30
30
|
let skippedAlreadyDecayed = 0;
|
|
31
31
|
let skippedSuperseded = 0;
|
|
32
|
+
let skippedForgotten = 0;
|
|
32
33
|
let minDecayScore;
|
|
33
34
|
let maxDecayScore;
|
|
34
35
|
for (const memory of memories) {
|
|
36
|
+
if (memory.forgotten) {
|
|
37
|
+
skippedForgotten += 1;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
35
40
|
if (memory.supersededBy != null) {
|
|
36
41
|
skippedSuperseded += 1;
|
|
37
42
|
continue;
|
|
@@ -62,6 +67,7 @@ export class DecayScoringPass {
|
|
|
62
67
|
nodesDecayed,
|
|
63
68
|
skippedAlreadyDecayed,
|
|
64
69
|
skippedSuperseded,
|
|
70
|
+
skippedForgotten,
|
|
65
71
|
...(minDecayScore !== undefined ? { minDecayScore } : {}),
|
|
66
72
|
...(maxDecayScore !== undefined ? { maxDecayScore } : {}),
|
|
67
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecayScoringPass.js","sourceRoot":"","sources":["../../src/crawler/DecayScoringPass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DecayScoringPass.js","sourceRoot":"","sources":["../../src/crawler/DecayScoringPass.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAU5D,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,eAAe,CAAC;IACf,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,GAAG,CAAa;IAChB,gBAAgB,CAAU;IAE3C,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QACtD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAA2B;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,aAAiC,CAAC;QACtC,IAAI,aAAiC,CAAC;QAEtC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,gBAAgB,IAAI,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gBAChC,iBAAiB,IAAI,CAAC,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,qBAAqB,IAAI,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC5C,GAAG;gBACH,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,WAAW,IAAI,CAAC,CAAC;YACjB,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACrF,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAErF,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC;gBACtE,MAAM,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,OAAO;oBAAE,YAAY,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,WAAW;YACX,YAAY;YACZ,qBAAqB;YACrB,iBAAiB;YACjB,gBAAgB;YAChB,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -18,5 +18,6 @@ export declare function compareNewestFirst(left: MemoryNode, right: MemoryNode):
|
|
|
18
18
|
export declare function getSkippedMaintenanceCounts(memories: MemoryNode[]): {
|
|
19
19
|
skippedDecayed: number;
|
|
20
20
|
skippedSuperseded: number;
|
|
21
|
+
skippedForgotten: number;
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=memoryMaintenance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryMaintenance.d.ts","sourceRoot":"","sources":["../../src/crawler/memoryMaintenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;CACzB;AAOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAGtF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAOpF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,OAAO,CAG/E;AAsCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,OAAO,CAG7F;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,GAAG,IAAI,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAK9E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"memoryMaintenance.d.ts","sourceRoot":"","sources":["../../src/crawler/memoryMaintenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;CACzB;AAOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAGtF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAOpF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,OAAO,CAG/E;AAsCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,OAAO,CAG7F;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,GAAG,IAAI,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAK9E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAMA"}
|