mem-os-python 1.6.27__py3-none-any.whl
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.
- mem_os_python-1.6.27.dist-info/METADATA +1032 -0
- mem_os_python-1.6.27.dist-info/RECORD +253 -0
- mem_os_python-1.6.27.dist-info/WHEEL +4 -0
- mem_os_python-1.6.27.dist-info/entry_points.txt +2 -0
- mem_os_python-1.6.27.dist-info/licenses/LICENSE +21 -0
- memos/__init__.py +16 -0
- memos/_js/adapters/anthropic.d.ts +279 -0
- memos/_js/adapters/anthropic.d.ts.map +1 -0
- memos/_js/adapters/anthropic.js +348 -0
- memos/_js/adapters/anthropic.js.map +1 -0
- memos/_js/adapters/base.d.ts +10 -0
- memos/_js/adapters/base.d.ts.map +1 -0
- memos/_js/adapters/base.js +2 -0
- memos/_js/adapters/base.js.map +1 -0
- memos/_js/adapters/openai.d.ts +264 -0
- memos/_js/adapters/openai.d.ts.map +1 -0
- memos/_js/adapters/openai.js +342 -0
- memos/_js/adapters/openai.js.map +1 -0
- memos/_js/apps/explorer.d.ts +244 -0
- memos/_js/apps/explorer.d.ts.map +1 -0
- memos/_js/apps/explorer.js +738 -0
- memos/_js/apps/explorer.js.map +1 -0
- memos/_js/citations.d.ts +65 -0
- memos/_js/citations.d.ts.map +1 -0
- memos/_js/citations.js +143 -0
- memos/_js/citations.js.map +1 -0
- memos/_js/cli-browse.d.ts +3 -0
- memos/_js/cli-browse.d.ts.map +1 -0
- memos/_js/cli-browse.js +129 -0
- memos/_js/cli-browse.js.map +1 -0
- memos/_js/cli-completion.d.ts +31 -0
- memos/_js/cli-completion.d.ts.map +1 -0
- memos/_js/cli-completion.js +340 -0
- memos/_js/cli-completion.js.map +1 -0
- memos/_js/cli-help.d.ts +18 -0
- memos/_js/cli-help.d.ts.map +1 -0
- memos/_js/cli-help.js +357 -0
- memos/_js/cli-help.js.map +1 -0
- memos/_js/cli.d.ts +28 -0
- memos/_js/cli.d.ts.map +1 -0
- memos/_js/cli.js +2880 -0
- memos/_js/cli.js.map +1 -0
- memos/_js/compression.d.ts +25 -0
- memos/_js/compression.d.ts.map +1 -0
- memos/_js/compression.js +319 -0
- memos/_js/compression.js.map +1 -0
- memos/_js/confidence-machine.d.ts +99 -0
- memos/_js/confidence-machine.d.ts.map +1 -0
- memos/_js/confidence-machine.js +222 -0
- memos/_js/confidence-machine.js.map +1 -0
- memos/_js/context-pack.d.ts +506 -0
- memos/_js/context-pack.d.ts.map +1 -0
- memos/_js/context-pack.js +1435 -0
- memos/_js/context-pack.js.map +1 -0
- memos/_js/contradictions.d.ts +160 -0
- memos/_js/contradictions.d.ts.map +1 -0
- memos/_js/contradictions.js +255 -0
- memos/_js/contradictions.js.map +1 -0
- memos/_js/dashboard.d.ts +30 -0
- memos/_js/dashboard.d.ts.map +1 -0
- memos/_js/dashboard.js +302 -0
- memos/_js/dashboard.js.map +1 -0
- memos/_js/ebbinghaus.d.ts +29 -0
- memos/_js/ebbinghaus.d.ts.map +1 -0
- memos/_js/ebbinghaus.js +32 -0
- memos/_js/ebbinghaus.js.map +1 -0
- memos/_js/embedding-queue.d.ts +190 -0
- memos/_js/embedding-queue.d.ts.map +1 -0
- memos/_js/embedding-queue.js +316 -0
- memos/_js/embedding-queue.js.map +1 -0
- memos/_js/embeddings.d.ts +187 -0
- memos/_js/embeddings.d.ts.map +1 -0
- memos/_js/embeddings.js +633 -0
- memos/_js/embeddings.js.map +1 -0
- memos/_js/entity-extraction.d.ts +54 -0
- memos/_js/entity-extraction.d.ts.map +1 -0
- memos/_js/entity-extraction.js +325 -0
- memos/_js/entity-extraction.js.map +1 -0
- memos/_js/entity-index.d.ts +93 -0
- memos/_js/entity-index.d.ts.map +1 -0
- memos/_js/entity-index.js +165 -0
- memos/_js/entity-index.js.map +1 -0
- memos/_js/event-memory.d.ts +147 -0
- memos/_js/event-memory.d.ts.map +1 -0
- memos/_js/event-memory.js +290 -0
- memos/_js/event-memory.js.map +1 -0
- memos/_js/external-import.d.ts +98 -0
- memos/_js/external-import.d.ts.map +1 -0
- memos/_js/external-import.js +669 -0
- memos/_js/external-import.js.map +1 -0
- memos/_js/fidelity.d.ts +367 -0
- memos/_js/fidelity.d.ts.map +1 -0
- memos/_js/fidelity.js +911 -0
- memos/_js/fidelity.js.map +1 -0
- memos/_js/graph-expansion.d.ts +119 -0
- memos/_js/graph-expansion.d.ts.map +1 -0
- memos/_js/graph-expansion.js +213 -0
- memos/_js/graph-expansion.js.map +1 -0
- memos/_js/graph-mermaid.d.ts +13 -0
- memos/_js/graph-mermaid.d.ts.map +1 -0
- memos/_js/graph-mermaid.js +32 -0
- memos/_js/graph-mermaid.js.map +1 -0
- memos/_js/graph.d.ts +170 -0
- memos/_js/graph.d.ts.map +1 -0
- memos/_js/graph.js +482 -0
- memos/_js/graph.js.map +1 -0
- memos/_js/harness.d.ts +63 -0
- memos/_js/harness.d.ts.map +1 -0
- memos/_js/harness.js +93 -0
- memos/_js/harness.js.map +1 -0
- memos/_js/importance.d.ts +118 -0
- memos/_js/importance.d.ts.map +1 -0
- memos/_js/importance.js +144 -0
- memos/_js/importance.js.map +1 -0
- memos/_js/index.d.ts +51 -0
- memos/_js/index.d.ts.map +1 -0
- memos/_js/index.js +53 -0
- memos/_js/index.js.map +1 -0
- memos/_js/mcp.d.ts +58 -0
- memos/_js/mcp.d.ts.map +1 -0
- memos/_js/mcp.js +1853 -0
- memos/_js/mcp.js.map +1 -0
- memos/_js/memory.d.ts +1762 -0
- memos/_js/memory.d.ts.map +1 -0
- memos/_js/memory.js +6283 -0
- memos/_js/memory.js.map +1 -0
- memos/_js/procedural.d.ts +74 -0
- memos/_js/procedural.d.ts.map +1 -0
- memos/_js/procedural.js +125 -0
- memos/_js/procedural.js.map +1 -0
- memos/_js/project-config.d.ts +68 -0
- memos/_js/project-config.d.ts.map +1 -0
- memos/_js/project-config.js +59 -0
- memos/_js/project-config.js.map +1 -0
- memos/_js/proof-of-forgetting.d.ts +57 -0
- memos/_js/proof-of-forgetting.d.ts.map +1 -0
- memos/_js/proof-of-forgetting.js +80 -0
- memos/_js/proof-of-forgetting.js.map +1 -0
- memos/_js/provenance.d.ts +122 -0
- memos/_js/provenance.d.ts.map +1 -0
- memos/_js/provenance.js +182 -0
- memos/_js/provenance.js.map +1 -0
- memos/_js/quarantine-commands.d.ts +23 -0
- memos/_js/quarantine-commands.d.ts.map +1 -0
- memos/_js/quarantine-commands.js +42 -0
- memos/_js/quarantine-commands.js.map +1 -0
- memos/_js/quarantine.d.ts +120 -0
- memos/_js/quarantine.d.ts.map +1 -0
- memos/_js/quarantine.js +873 -0
- memos/_js/quarantine.js.map +1 -0
- memos/_js/redact.d.ts +12 -0
- memos/_js/redact.d.ts.map +1 -0
- memos/_js/redact.js +26 -0
- memos/_js/redact.js.map +1 -0
- memos/_js/repl.d.ts +57 -0
- memos/_js/repl.d.ts.map +1 -0
- memos/_js/repl.js +295 -0
- memos/_js/repl.js.map +1 -0
- memos/_js/rerank-local.d.ts +61 -0
- memos/_js/rerank-local.d.ts.map +1 -0
- memos/_js/rerank-local.js +210 -0
- memos/_js/rerank-local.js.map +1 -0
- memos/_js/retain-filter.d.ts +98 -0
- memos/_js/retain-filter.d.ts.map +1 -0
- memos/_js/retain-filter.js +232 -0
- memos/_js/retain-filter.js.map +1 -0
- memos/_js/retrieval.d.ts +265 -0
- memos/_js/retrieval.d.ts.map +1 -0
- memos/_js/retrieval.js +1018 -0
- memos/_js/retrieval.js.map +1 -0
- memos/_js/revert.d.ts +77 -0
- memos/_js/revert.d.ts.map +1 -0
- memos/_js/revert.js +252 -0
- memos/_js/revert.js.map +1 -0
- memos/_js/scope.d.ts +30 -0
- memos/_js/scope.d.ts.map +1 -0
- memos/_js/scope.js +71 -0
- memos/_js/scope.js.map +1 -0
- memos/_js/semantic-screen.d.ts +152 -0
- memos/_js/semantic-screen.d.ts.map +1 -0
- memos/_js/semantic-screen.js +290 -0
- memos/_js/semantic-screen.js.map +1 -0
- memos/_js/session-hooks.d.ts +127 -0
- memos/_js/session-hooks.d.ts.map +1 -0
- memos/_js/session-hooks.js +482 -0
- memos/_js/session-hooks.js.map +1 -0
- memos/_js/storage/sqlite.d.ts +427 -0
- memos/_js/storage/sqlite.d.ts.map +1 -0
- memos/_js/storage/sqlite.js +2428 -0
- memos/_js/storage/sqlite.js.map +1 -0
- memos/_js/sync.d.ts +213 -0
- memos/_js/sync.d.ts.map +1 -0
- memos/_js/sync.js +389 -0
- memos/_js/sync.js.map +1 -0
- memos/_js/tamper-log.d.ts +98 -0
- memos/_js/tamper-log.d.ts.map +1 -0
- memos/_js/tamper-log.js +327 -0
- memos/_js/tamper-log.js.map +1 -0
- memos/_js/temporal.d.ts +92 -0
- memos/_js/temporal.d.ts.map +1 -0
- memos/_js/temporal.js +536 -0
- memos/_js/temporal.js.map +1 -0
- memos/_js/time-travel.d.ts +38 -0
- memos/_js/time-travel.d.ts.map +1 -0
- memos/_js/time-travel.js +46 -0
- memos/_js/time-travel.js.map +1 -0
- memos/_js/timestamp-format.d.ts +18 -0
- memos/_js/timestamp-format.d.ts.map +1 -0
- memos/_js/timestamp-format.js +52 -0
- memos/_js/timestamp-format.js.map +1 -0
- memos/_js/triple-extraction.d.ts +31 -0
- memos/_js/triple-extraction.d.ts.map +1 -0
- memos/_js/triple-extraction.js +116 -0
- memos/_js/triple-extraction.js.map +1 -0
- memos/_js/types.d.ts +2474 -0
- memos/_js/types.d.ts.map +1 -0
- memos/_js/types.js +20 -0
- memos/_js/types.js.map +1 -0
- memos/_js/updater.d.ts +95 -0
- memos/_js/updater.d.ts.map +1 -0
- memos/_js/updater.js +268 -0
- memos/_js/updater.js.map +1 -0
- memos/_js/version.d.ts +17 -0
- memos/_js/version.d.ts.map +1 -0
- memos/_js/version.js +34 -0
- memos/_js/version.js.map +1 -0
- memos/_js/vision/clip-query-cache.d.ts +58 -0
- memos/_js/vision/clip-query-cache.d.ts.map +1 -0
- memos/_js/vision/clip-query-cache.js +79 -0
- memos/_js/vision/clip-query-cache.js.map +1 -0
- memos/_js/vision/clip.d.ts +113 -0
- memos/_js/vision/clip.d.ts.map +1 -0
- memos/_js/vision/clip.js +224 -0
- memos/_js/vision/clip.js.map +1 -0
- memos/_js/vision/fake-clip.d.ts +55 -0
- memos/_js/vision/fake-clip.d.ts.map +1 -0
- memos/_js/vision/fake-clip.js +122 -0
- memos/_js/vision/fake-clip.js.map +1 -0
- memos/_js/vision/index.d.ts +15 -0
- memos/_js/vision/index.d.ts.map +1 -0
- memos/_js/vision/index.js +13 -0
- memos/_js/vision/index.js.map +1 -0
- memos/_js/vision/store.d.ts +137 -0
- memos/_js/vision/store.d.ts.map +1 -0
- memos/_js/vision/store.js +383 -0
- memos/_js/vision/store.js.map +1 -0
- memos/adapters/__init__.py +0 -0
- memos/adapters/crewai.py +385 -0
- memos/adapters/langchain.py +301 -0
- memos/adapters/ollama.py +396 -0
- memos/server/__init__.py +0 -0
- memos/server/main.py +547 -0
- memos/server/routes.py +360 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-pack.js","sourceRoot":"","sources":["../src/context-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Write-time contradiction candidate detection + read-time rule-based
|
|
3
|
+
* resolution for MemOS.
|
|
4
|
+
*
|
|
5
|
+
* Background: MemOS is ADD-only — old facts are never deleted, they are
|
|
6
|
+
* invalidated at read time. The gap this closes is *detection*: without
|
|
7
|
+
* it, conflicting facts accumulate silently (the MemPalace failure mode
|
|
8
|
+
* called out in the accuracy research). The detection recipe comes from
|
|
9
|
+
* nirdiamant's semantic-memory thresholds — embedding similarity > 0.85
|
|
10
|
+
* means duplicate, the 0.5–0.85 band plus entity overlap means
|
|
11
|
+
* *contradiction candidate* — and the resolution policy mirrors the
|
|
12
|
+
* mem0^g conflict-detector pattern, minus its LLM adjudication.
|
|
13
|
+
*
|
|
14
|
+
* Two entry points:
|
|
15
|
+
*
|
|
16
|
+
* 1. Write time — {@link findContradictionCandidates}: after a node is
|
|
17
|
+
* stored and its embedding persisted, scan a bounded set of semantic
|
|
18
|
+
* neighbors (the caller does the bounded scan; this function is pure)
|
|
19
|
+
* and flag pairs in the contradiction band. Flagged pairs are
|
|
20
|
+
* persisted to the `contradictions` table with status `unresolved`
|
|
21
|
+
* (add-only: both versions are kept, with provenance).
|
|
22
|
+
*
|
|
23
|
+
* 2. Read time — {@link resolveContradictionsAtRead}: when BOTH members
|
|
24
|
+
* of a CONFIRMED contradiction pair (`status: "resolved"`, e.g. via
|
|
25
|
+
* the evidence state machine's supersession path) appear in a result
|
|
26
|
+
* set, demote the OLDER one (multiply its score by
|
|
27
|
+
* {@link CONTRADICTION_DEMOTION_FACTOR}) so the newer version wins.
|
|
28
|
+
* Heuristic write-time candidates stay `unresolved` — persisted for
|
|
29
|
+
* future sleep-time adjudication — and never affect ranking, because
|
|
30
|
+
* at corpus scale the candidate rule's precision is too low for
|
|
31
|
+
* unreviewed pairs to demote results. Never removes anything.
|
|
32
|
+
* Deterministic.
|
|
33
|
+
*
|
|
34
|
+
* No LLM anywhere on this path — detection and resolution are
|
|
35
|
+
* rule-based. LLM adjudication (e.g. in the sleep-time dreaming loop)
|
|
36
|
+
* is an explicit future step, not part of this module.
|
|
37
|
+
*
|
|
38
|
+
* @module @memos/contradictions
|
|
39
|
+
*/
|
|
40
|
+
import type { ContradictionRecord, MemoryNode, ScoredMemory } from "./types.js";
|
|
41
|
+
/**
|
|
42
|
+
* Lower bound of the contradiction band. Below this, two memories are
|
|
43
|
+
* unrelated — flagging them would be pure noise.
|
|
44
|
+
*/
|
|
45
|
+
export declare const CONTRADICTION_SIM_MIN = 0.5;
|
|
46
|
+
/**
|
|
47
|
+
* Upper bound (exclusive) of the contradiction band. At or above this,
|
|
48
|
+
* the pair is a duplicate/paraphrase, not a contradiction — the
|
|
49
|
+
* evidence-learning store path (reinforce) already owns that band.
|
|
50
|
+
*/
|
|
51
|
+
export declare const CONTRADICTION_SIM_MAX = 0.85;
|
|
52
|
+
/**
|
|
53
|
+
* Write-time neighbor scan bound. Contradiction detection must not
|
|
54
|
+
* become a full table scan on every write — the caller asks for the
|
|
55
|
+
* top-N semantic neighbors and this module scores only those.
|
|
56
|
+
*/
|
|
57
|
+
export declare const CONTRADICTION_SCAN_LIMIT = 50;
|
|
58
|
+
/**
|
|
59
|
+
* Read-time demotion factor for the older member of a contradiction
|
|
60
|
+
* pair. 0.5 is strong enough to flip genuinely-tied pairs while a
|
|
61
|
+
* clearly more relevant old memory still keeps its rank.
|
|
62
|
+
*/
|
|
63
|
+
export declare const CONTRADICTION_DEMOTION_FACTOR = 0.5;
|
|
64
|
+
/**
|
|
65
|
+
* A pre-existing memory eligible for contradiction comparison. The
|
|
66
|
+
* caller (the store path) fetches these from a bounded semantic-neighbor
|
|
67
|
+
* scan; `entities` are the stored entities/tags of the candidate.
|
|
68
|
+
*/
|
|
69
|
+
export interface ContradictionCandidateInput {
|
|
70
|
+
id: string;
|
|
71
|
+
content: string;
|
|
72
|
+
vector: ArrayLike<number>;
|
|
73
|
+
entities: string[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A flagged contradiction candidate: the existing memory id plus the
|
|
77
|
+
* measured cosine similarity (for provenance / future adjudication).
|
|
78
|
+
*/
|
|
79
|
+
export interface ContradictionCandidate {
|
|
80
|
+
id: string;
|
|
81
|
+
similarity: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Stored entity surface forms for a memory node: `metadata.entities`
|
|
85
|
+
* plus `tags`, lowercased and deduped. The entity-overlap check in
|
|
86
|
+
* {@link findContradictionCandidates} compares the NEW memory's
|
|
87
|
+
* extracted entities against these.
|
|
88
|
+
*/
|
|
89
|
+
export declare function storedEntities(node: {
|
|
90
|
+
tags?: readonly string[];
|
|
91
|
+
metadata?: {
|
|
92
|
+
entities?: unknown;
|
|
93
|
+
};
|
|
94
|
+
}): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Flag contradiction candidates among existing memories for a newly
|
|
97
|
+
* written memory.
|
|
98
|
+
*
|
|
99
|
+
* A candidate is flagged when ALL of these hold:
|
|
100
|
+
* 1. cosine similarity is in [CONTRADICTION_SIM_MIN, CONTRADICTION_SIM_MAX)
|
|
101
|
+
* — the nirdiamant recipe band (>= 0.85 is a duplicate, < 0.5 is
|
|
102
|
+
* unrelated);
|
|
103
|
+
* 2. entity overlap > 0 between the new content's extracted entities
|
|
104
|
+
* and the candidate's stored entities (rules out topically
|
|
105
|
+
* unrelated near-neighbors);
|
|
106
|
+
* 3. {@link sharesSubject} — the texts share at least one meaningful
|
|
107
|
+
* content word, so a negation can only contradict a memory that is
|
|
108
|
+
* actually about the same thing.
|
|
109
|
+
*
|
|
110
|
+
* Pure function: no storage, no LLM. Deterministic — candidates are
|
|
111
|
+
* returned in input order.
|
|
112
|
+
*
|
|
113
|
+
* @param newContent — The newly stored memory's content.
|
|
114
|
+
* @param newVector — The newly stored memory's embedding vector.
|
|
115
|
+
* @param candidates — Existing memories from the bounded neighbor scan.
|
|
116
|
+
* @returns Flagged candidates ({id, similarity}).
|
|
117
|
+
*/
|
|
118
|
+
export declare function findContradictionCandidates(newContent: string, newVector: ArrayLike<number>, candidates: ContradictionCandidateInput[]): ContradictionCandidate[];
|
|
119
|
+
/**
|
|
120
|
+
* Rule-based contradiction resolution at read time.
|
|
121
|
+
*
|
|
122
|
+
* For every recorded contradiction pair whose BOTH members appear in
|
|
123
|
+
* `results`, demote the OLDER member (smaller `createdAt`; id as the
|
|
124
|
+
* tiebreak) by {@link CONTRADICTION_DEMOTION_FACTOR}. The demoted result
|
|
125
|
+
* carries a `scores.contradiction_demoted` marker (the factor) and its
|
|
126
|
+
* `scores.hybrid` is refreshed to the demoted score — mirroring the
|
|
127
|
+
* convention in `fuseResults`. Demotion is sign-aware: the keyword leg
|
|
128
|
+
* yields negative bm25 ranks, where a plain multiplication would
|
|
129
|
+
* promote instead of demote, so negative scores are divided by the
|
|
130
|
+
* factor (more negative = ranks worse under the descending sort).
|
|
131
|
+
*
|
|
132
|
+
* Rules:
|
|
133
|
+
* - Never removes results. Add-only is preserved: both versions stay
|
|
134
|
+
* in the set; the newer one simply outranks the older.
|
|
135
|
+
* - Pairs with only ONE member in the set are untouched.
|
|
136
|
+
* - The caller is responsible for passing only CONFIRMED pairs
|
|
137
|
+
* (`status: "resolved"`); heuristic `unresolved` candidates are
|
|
138
|
+
* persisted for future adjudication and must not reach this
|
|
139
|
+
* function (see `applyContradictionResolution` in `src/memory.ts`).
|
|
140
|
+
* - Deterministic: pairs are processed in canonical (node_a, node_b)
|
|
141
|
+
* order and the output is re-sorted with `compareScoredMemories`.
|
|
142
|
+
* - Pure: inputs are not mutated — demoted results are new objects
|
|
143
|
+
* with fresh `scores` records (the input `scores` objects may be
|
|
144
|
+
* shared with other result sets).
|
|
145
|
+
*
|
|
146
|
+
* @param results — Scored memories from hybrid search (post-fusion).
|
|
147
|
+
* @param pairs — Recorded contradiction pairs (canonically ordered).
|
|
148
|
+
* @returns A new array with older pair members demoted, sorted best-first.
|
|
149
|
+
*/
|
|
150
|
+
export declare function resolveContradictionsAtRead(results: ScoredMemory[], pairs: ContradictionRecord[]): ScoredMemory[];
|
|
151
|
+
/** Node entity-shape accepted by {@link nodeContradictionCandidates}. */
|
|
152
|
+
export type ContradictionScannableNode = Pick<MemoryNode, "id" | "content" | "tags" | "metadata" | "validTo">;
|
|
153
|
+
/**
|
|
154
|
+
* Build the {@link ContradictionCandidateInput} list for a batch of
|
|
155
|
+
* existing nodes given their vectors. Historical nodes (`validTo !==
|
|
156
|
+
* null`) are skipped — a superseded memory is already out of the
|
|
157
|
+
* read-time running and must not accumulate new contradiction pairs.
|
|
158
|
+
*/
|
|
159
|
+
export declare function nodeContradictionCandidates(nodes: ContradictionScannableNode[], vectors: ReadonlyMap<string, ArrayLike<number>>, excludeId?: string): ContradictionCandidateInput[];
|
|
160
|
+
//# sourceMappingURL=contradictions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contradictions.d.ts","sourceRoot":"","sources":["../src/contradictions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACnC,GAAG,MAAM,EAAE,CAgBX;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,UAAU,EAAE,2BAA2B,EAAE,GACxC,sBAAsB,EAAE,CA0B1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,EAAE,mBAAmB,EAAE,GAC3B,YAAY,EAAE,CAiEhB;AAED,yEAAyE;AACzE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,UAAU,EACV,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CACnD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,0BAA0B,EAAE,EACnC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAC/C,SAAS,CAAC,EAAE,MAAM,GACjB,2BAA2B,EAAE,CAe/B"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Write-time contradiction candidate detection + read-time rule-based
|
|
3
|
+
* resolution for MemOS.
|
|
4
|
+
*
|
|
5
|
+
* Background: MemOS is ADD-only — old facts are never deleted, they are
|
|
6
|
+
* invalidated at read time. The gap this closes is *detection*: without
|
|
7
|
+
* it, conflicting facts accumulate silently (the MemPalace failure mode
|
|
8
|
+
* called out in the accuracy research). The detection recipe comes from
|
|
9
|
+
* nirdiamant's semantic-memory thresholds — embedding similarity > 0.85
|
|
10
|
+
* means duplicate, the 0.5–0.85 band plus entity overlap means
|
|
11
|
+
* *contradiction candidate* — and the resolution policy mirrors the
|
|
12
|
+
* mem0^g conflict-detector pattern, minus its LLM adjudication.
|
|
13
|
+
*
|
|
14
|
+
* Two entry points:
|
|
15
|
+
*
|
|
16
|
+
* 1. Write time — {@link findContradictionCandidates}: after a node is
|
|
17
|
+
* stored and its embedding persisted, scan a bounded set of semantic
|
|
18
|
+
* neighbors (the caller does the bounded scan; this function is pure)
|
|
19
|
+
* and flag pairs in the contradiction band. Flagged pairs are
|
|
20
|
+
* persisted to the `contradictions` table with status `unresolved`
|
|
21
|
+
* (add-only: both versions are kept, with provenance).
|
|
22
|
+
*
|
|
23
|
+
* 2. Read time — {@link resolveContradictionsAtRead}: when BOTH members
|
|
24
|
+
* of a CONFIRMED contradiction pair (`status: "resolved"`, e.g. via
|
|
25
|
+
* the evidence state machine's supersession path) appear in a result
|
|
26
|
+
* set, demote the OLDER one (multiply its score by
|
|
27
|
+
* {@link CONTRADICTION_DEMOTION_FACTOR}) so the newer version wins.
|
|
28
|
+
* Heuristic write-time candidates stay `unresolved` — persisted for
|
|
29
|
+
* future sleep-time adjudication — and never affect ranking, because
|
|
30
|
+
* at corpus scale the candidate rule's precision is too low for
|
|
31
|
+
* unreviewed pairs to demote results. Never removes anything.
|
|
32
|
+
* Deterministic.
|
|
33
|
+
*
|
|
34
|
+
* No LLM anywhere on this path — detection and resolution are
|
|
35
|
+
* rule-based. LLM adjudication (e.g. in the sleep-time dreaming loop)
|
|
36
|
+
* is an explicit future step, not part of this module.
|
|
37
|
+
*
|
|
38
|
+
* @module @memos/contradictions
|
|
39
|
+
*/
|
|
40
|
+
import { cosineSimilarity } from "./embeddings.js";
|
|
41
|
+
import { sharesSubject } from "./confidence-machine.js";
|
|
42
|
+
import { entityOverlap, extractQueryEntities } from "./entity-extraction.js";
|
|
43
|
+
import { compareScoredMemories } from "./retrieval.js";
|
|
44
|
+
/**
|
|
45
|
+
* Lower bound of the contradiction band. Below this, two memories are
|
|
46
|
+
* unrelated — flagging them would be pure noise.
|
|
47
|
+
*/
|
|
48
|
+
export const CONTRADICTION_SIM_MIN = 0.5;
|
|
49
|
+
/**
|
|
50
|
+
* Upper bound (exclusive) of the contradiction band. At or above this,
|
|
51
|
+
* the pair is a duplicate/paraphrase, not a contradiction — the
|
|
52
|
+
* evidence-learning store path (reinforce) already owns that band.
|
|
53
|
+
*/
|
|
54
|
+
export const CONTRADICTION_SIM_MAX = 0.85;
|
|
55
|
+
/**
|
|
56
|
+
* Write-time neighbor scan bound. Contradiction detection must not
|
|
57
|
+
* become a full table scan on every write — the caller asks for the
|
|
58
|
+
* top-N semantic neighbors and this module scores only those.
|
|
59
|
+
*/
|
|
60
|
+
export const CONTRADICTION_SCAN_LIMIT = 50;
|
|
61
|
+
/**
|
|
62
|
+
* Read-time demotion factor for the older member of a contradiction
|
|
63
|
+
* pair. 0.5 is strong enough to flip genuinely-tied pairs while a
|
|
64
|
+
* clearly more relevant old memory still keeps its rank.
|
|
65
|
+
*/
|
|
66
|
+
export const CONTRADICTION_DEMOTION_FACTOR = 0.5;
|
|
67
|
+
/**
|
|
68
|
+
* Stored entity surface forms for a memory node: `metadata.entities`
|
|
69
|
+
* plus `tags`, lowercased and deduped. The entity-overlap check in
|
|
70
|
+
* {@link findContradictionCandidates} compares the NEW memory's
|
|
71
|
+
* extracted entities against these.
|
|
72
|
+
*/
|
|
73
|
+
export function storedEntities(node) {
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
const out = [];
|
|
76
|
+
const push = (raw) => {
|
|
77
|
+
if (typeof raw !== "string")
|
|
78
|
+
return;
|
|
79
|
+
const normalized = raw.trim().toLowerCase();
|
|
80
|
+
if (normalized.length === 0 || seen.has(normalized))
|
|
81
|
+
return;
|
|
82
|
+
seen.add(normalized);
|
|
83
|
+
out.push(normalized);
|
|
84
|
+
};
|
|
85
|
+
for (const tag of node.tags ?? [])
|
|
86
|
+
push(tag);
|
|
87
|
+
const metaEntities = node.metadata?.entities;
|
|
88
|
+
if (Array.isArray(metaEntities)) {
|
|
89
|
+
for (const entity of metaEntities)
|
|
90
|
+
push(entity);
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Flag contradiction candidates among existing memories for a newly
|
|
96
|
+
* written memory.
|
|
97
|
+
*
|
|
98
|
+
* A candidate is flagged when ALL of these hold:
|
|
99
|
+
* 1. cosine similarity is in [CONTRADICTION_SIM_MIN, CONTRADICTION_SIM_MAX)
|
|
100
|
+
* — the nirdiamant recipe band (>= 0.85 is a duplicate, < 0.5 is
|
|
101
|
+
* unrelated);
|
|
102
|
+
* 2. entity overlap > 0 between the new content's extracted entities
|
|
103
|
+
* and the candidate's stored entities (rules out topically
|
|
104
|
+
* unrelated near-neighbors);
|
|
105
|
+
* 3. {@link sharesSubject} — the texts share at least one meaningful
|
|
106
|
+
* content word, so a negation can only contradict a memory that is
|
|
107
|
+
* actually about the same thing.
|
|
108
|
+
*
|
|
109
|
+
* Pure function: no storage, no LLM. Deterministic — candidates are
|
|
110
|
+
* returned in input order.
|
|
111
|
+
*
|
|
112
|
+
* @param newContent — The newly stored memory's content.
|
|
113
|
+
* @param newVector — The newly stored memory's embedding vector.
|
|
114
|
+
* @param candidates — Existing memories from the bounded neighbor scan.
|
|
115
|
+
* @returns Flagged candidates ({id, similarity}).
|
|
116
|
+
*/
|
|
117
|
+
export function findContradictionCandidates(newContent, newVector, candidates) {
|
|
118
|
+
const newEntities = extractQueryEntities(newContent).map((e) => e.toLowerCase());
|
|
119
|
+
const flagged = [];
|
|
120
|
+
for (const candidate of candidates) {
|
|
121
|
+
const similarity = cosineSimilarity(newVector, candidate.vector);
|
|
122
|
+
if (similarity < CONTRADICTION_SIM_MIN ||
|
|
123
|
+
similarity >= CONTRADICTION_SIM_MAX) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (entityOverlap(newEntities, {
|
|
127
|
+
metadata: { entities: candidate.entities },
|
|
128
|
+
}) <= 0) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (!sharesSubject(newContent, candidate.content)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
flagged.push({ id: candidate.id, similarity });
|
|
135
|
+
}
|
|
136
|
+
return flagged;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Rule-based contradiction resolution at read time.
|
|
140
|
+
*
|
|
141
|
+
* For every recorded contradiction pair whose BOTH members appear in
|
|
142
|
+
* `results`, demote the OLDER member (smaller `createdAt`; id as the
|
|
143
|
+
* tiebreak) by {@link CONTRADICTION_DEMOTION_FACTOR}. The demoted result
|
|
144
|
+
* carries a `scores.contradiction_demoted` marker (the factor) and its
|
|
145
|
+
* `scores.hybrid` is refreshed to the demoted score — mirroring the
|
|
146
|
+
* convention in `fuseResults`. Demotion is sign-aware: the keyword leg
|
|
147
|
+
* yields negative bm25 ranks, where a plain multiplication would
|
|
148
|
+
* promote instead of demote, so negative scores are divided by the
|
|
149
|
+
* factor (more negative = ranks worse under the descending sort).
|
|
150
|
+
*
|
|
151
|
+
* Rules:
|
|
152
|
+
* - Never removes results. Add-only is preserved: both versions stay
|
|
153
|
+
* in the set; the newer one simply outranks the older.
|
|
154
|
+
* - Pairs with only ONE member in the set are untouched.
|
|
155
|
+
* - The caller is responsible for passing only CONFIRMED pairs
|
|
156
|
+
* (`status: "resolved"`); heuristic `unresolved` candidates are
|
|
157
|
+
* persisted for future adjudication and must not reach this
|
|
158
|
+
* function (see `applyContradictionResolution` in `src/memory.ts`).
|
|
159
|
+
* - Deterministic: pairs are processed in canonical (node_a, node_b)
|
|
160
|
+
* order and the output is re-sorted with `compareScoredMemories`.
|
|
161
|
+
* - Pure: inputs are not mutated — demoted results are new objects
|
|
162
|
+
* with fresh `scores` records (the input `scores` objects may be
|
|
163
|
+
* shared with other result sets).
|
|
164
|
+
*
|
|
165
|
+
* @param results — Scored memories from hybrid search (post-fusion).
|
|
166
|
+
* @param pairs — Recorded contradiction pairs (canonically ordered).
|
|
167
|
+
* @returns A new array with older pair members demoted, sorted best-first.
|
|
168
|
+
*/
|
|
169
|
+
export function resolveContradictionsAtRead(results, pairs) {
|
|
170
|
+
if (results.length < 2 || pairs.length === 0)
|
|
171
|
+
return [...results];
|
|
172
|
+
const byId = new Map();
|
|
173
|
+
for (let i = 0; i < results.length; i += 1) {
|
|
174
|
+
const id = results[i]?.node.id;
|
|
175
|
+
if (id !== undefined && !byId.has(id))
|
|
176
|
+
byId.set(id, i);
|
|
177
|
+
}
|
|
178
|
+
// Canonical processing order so overlapping pairs resolve
|
|
179
|
+
// deterministically no matter the input order.
|
|
180
|
+
const ordered = [...pairs].sort((a, b) => a.nodeA < b.nodeA
|
|
181
|
+
? -1
|
|
182
|
+
: a.nodeA > b.nodeA
|
|
183
|
+
? 1
|
|
184
|
+
: a.nodeB < b.nodeB
|
|
185
|
+
? -1
|
|
186
|
+
: a.nodeB > b.nodeB
|
|
187
|
+
? 1
|
|
188
|
+
: 0);
|
|
189
|
+
const demoted = new Set();
|
|
190
|
+
const adjusted = results.map((r) => ({ ...r }));
|
|
191
|
+
for (const pair of ordered) {
|
|
192
|
+
const idxA = byId.get(pair.nodeA);
|
|
193
|
+
const idxB = byId.get(pair.nodeB);
|
|
194
|
+
if (idxA === undefined || idxB === undefined)
|
|
195
|
+
continue; // only one member present
|
|
196
|
+
const a = adjusted[idxA];
|
|
197
|
+
const b = adjusted[idxB];
|
|
198
|
+
// The older member loses: smaller createdAt, with the node id as a
|
|
199
|
+
// deterministic tiebreak (createdAt is monotonic per MemOS instance,
|
|
200
|
+
// but imports can collide on the same millisecond).
|
|
201
|
+
const olderIdx = a.node.createdAt < b.node.createdAt ||
|
|
202
|
+
(a.node.createdAt === b.node.createdAt && a.node.id < b.node.id)
|
|
203
|
+
? idxA
|
|
204
|
+
: idxB;
|
|
205
|
+
if (demoted.has(adjusted[olderIdx].node.id))
|
|
206
|
+
continue; // already demoted via another pair
|
|
207
|
+
const target = adjusted[olderIdx];
|
|
208
|
+
// Sign-aware demotion: scores from the keyword leg are negative
|
|
209
|
+
// bm25 ranks, and `score * 0.5` would promote a negative score
|
|
210
|
+
// (closer to zero) instead of demoting it. Dividing a negative
|
|
211
|
+
// score by the factor pushes it further negative, i.e. ranks worse
|
|
212
|
+
// under the descending sort — a true demotion for either sign.
|
|
213
|
+
// Non-negative scores keep the exact historical behavior.
|
|
214
|
+
const newScore = target.score >= 0
|
|
215
|
+
? target.score * CONTRADICTION_DEMOTION_FACTOR
|
|
216
|
+
: target.score / CONTRADICTION_DEMOTION_FACTOR;
|
|
217
|
+
adjusted[olderIdx] = {
|
|
218
|
+
...target,
|
|
219
|
+
score: newScore,
|
|
220
|
+
scores: {
|
|
221
|
+
...(target.scores ?? {}),
|
|
222
|
+
contradiction_demoted: CONTRADICTION_DEMOTION_FACTOR,
|
|
223
|
+
hybrid: newScore,
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
demoted.add(target.node.id);
|
|
227
|
+
}
|
|
228
|
+
return adjusted.sort(compareScoredMemories);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Build the {@link ContradictionCandidateInput} list for a batch of
|
|
232
|
+
* existing nodes given their vectors. Historical nodes (`validTo !==
|
|
233
|
+
* null`) are skipped — a superseded memory is already out of the
|
|
234
|
+
* read-time running and must not accumulate new contradiction pairs.
|
|
235
|
+
*/
|
|
236
|
+
export function nodeContradictionCandidates(nodes, vectors, excludeId) {
|
|
237
|
+
const out = [];
|
|
238
|
+
for (const node of nodes) {
|
|
239
|
+
if (node.id === excludeId)
|
|
240
|
+
continue;
|
|
241
|
+
if (node.validTo !== null)
|
|
242
|
+
continue;
|
|
243
|
+
const vector = vectors.get(node.id);
|
|
244
|
+
if (!vector)
|
|
245
|
+
continue;
|
|
246
|
+
out.push({
|
|
247
|
+
id: node.id,
|
|
248
|
+
content: node.content,
|
|
249
|
+
vector,
|
|
250
|
+
entities: storedEntities(node),
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
return out;
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=contradictions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contradictions.js","sourceRoot":"","sources":["../src/contradictions.ts"],"names":[],"mappings":"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"}
|
memos/_js/dashboard.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local dashboard — a browser UI for the MemOS memory store.
|
|
3
|
+
*
|
|
4
|
+
* `memos dashboard` starts a local HTTP server (no external dependencies)
|
|
5
|
+
* serving a single-page dashboard for browsing, searching, and visualizing
|
|
6
|
+
* the memory graph. No MCP Apps host required.
|
|
7
|
+
*
|
|
8
|
+
* API:
|
|
9
|
+
* GET /api/memories?limit=50&offset=0 — list memories
|
|
10
|
+
* GET /api/search?q=...&limit=20 — search memories
|
|
11
|
+
* GET /api/memory/:id — get one memory
|
|
12
|
+
* GET /api/graph — graph nodes + edges
|
|
13
|
+
* GET /api/stats — store statistics
|
|
14
|
+
*
|
|
15
|
+
* @module @memos/dashboard
|
|
16
|
+
*/
|
|
17
|
+
import type { MemOS } from "./memory.js";
|
|
18
|
+
export interface DashboardOptions {
|
|
19
|
+
port?: number;
|
|
20
|
+
open?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Start the local dashboard server.
|
|
24
|
+
* Returns the server instance and the URL.
|
|
25
|
+
*/
|
|
26
|
+
export declare function startDashboard(memos: MemOS, opts?: DashboardOptions): Promise<{
|
|
27
|
+
url: string;
|
|
28
|
+
close: () => Promise<void>;
|
|
29
|
+
}>;
|
|
30
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA8LzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CA0GtD"}
|