graph-mind-memory 0.1.2__tar.gz → 0.1.4__tar.gz
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.
- {graph_mind_memory-0.1.2/graph_mind_memory.egg-info → graph_mind_memory-0.1.4}/PKG-INFO +7 -1
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/README.md +6 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_mcp_server.py +3 -2
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4/graph_mind_memory.egg-info}/PKG-INFO +7 -1
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/install.py +27 -4
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/local_embedder.py +23 -2
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/pyproject.toml +1 -1
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/LICENSE +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/associative_memory.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/automatic_capture.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/automatic_capture_cli.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/brain_log.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/clock.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/coding_memory.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/conversation_memory.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/development_memory.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/development_paths.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/embedding_warmup.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/entity_timeline.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/SOURCES.txt +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/dependency_links.txt +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/entry_points.txt +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/requires.txt +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/top_level.txt +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/local_brain.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/semantic_llm_extractor.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/semantic_memory.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/semantic_recall.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/setup.cfg +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/temporal_resolver.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/universal_personal_memory.py +0 -0
- {graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/vector_cache.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: graph-mind-memory
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Local-first memory for AI coding assistants: verbatim, on your own PC, no LLM calls at write time.
|
|
5
5
|
Author-email: Yohan Ko <goyohan0611@gmail.com>
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -117,6 +117,12 @@ pip install graph-mind-memory
|
|
|
117
117
|
graph-mind-install
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
If `graph-mind-install` is "not recognized", pip put it in a Scripts folder that is not on your
|
|
121
|
+
PATH (common with the Windows Python install manager). `python -m install` runs the same thing.
|
|
122
|
+
If it stops with `WinError 1114` loading `c10.dll`, Windows is missing the Microsoft Visual C++
|
|
123
|
+
runtime that PyTorch needs: install [vc_redist.x64.exe](https://aka.ms/vs/17/release/vc_redist.x64.exe),
|
|
124
|
+
restart, and run the installer again.
|
|
125
|
+
|
|
120
126
|
or from source:
|
|
121
127
|
|
|
122
128
|
```bash
|
|
@@ -91,6 +91,12 @@ pip install graph-mind-memory
|
|
|
91
91
|
graph-mind-install
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
+
If `graph-mind-install` is "not recognized", pip put it in a Scripts folder that is not on your
|
|
95
|
+
PATH (common with the Windows Python install manager). `python -m install` runs the same thing.
|
|
96
|
+
If it stops with `WinError 1114` loading `c10.dll`, Windows is missing the Microsoft Visual C++
|
|
97
|
+
runtime that PyTorch needs: install [vc_redist.x64.exe](https://aka.ms/vs/17/release/vc_redist.x64.exe),
|
|
98
|
+
restart, and run the installer again.
|
|
99
|
+
|
|
94
100
|
or from source:
|
|
95
101
|
|
|
96
102
|
```bash
|
|
@@ -38,8 +38,9 @@ RecordableEventType = Literal[
|
|
|
38
38
|
# hub over the network whether a newer revision exists, every time it loads. That made the first
|
|
39
39
|
# save of a session take ~95 s and sent requests off the machine for no reason. Once the model is
|
|
40
40
|
# on disk, stay offline.
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
from local_embedder import model_on_disk # noqa: E402
|
|
42
|
+
|
|
43
|
+
if model_on_disk():
|
|
43
44
|
os.environ.setdefault("HF_HUB_OFFLINE", "1")
|
|
44
45
|
os.environ.setdefault("TRANSFORMERS_OFFLINE", "1")
|
|
45
46
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: graph-mind-memory
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Local-first memory for AI coding assistants: verbatim, on your own PC, no LLM calls at write time.
|
|
5
5
|
Author-email: Yohan Ko <goyohan0611@gmail.com>
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -117,6 +117,12 @@ pip install graph-mind-memory
|
|
|
117
117
|
graph-mind-install
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
If `graph-mind-install` is "not recognized", pip put it in a Scripts folder that is not on your
|
|
121
|
+
PATH (common with the Windows Python install manager). `python -m install` runs the same thing.
|
|
122
|
+
If it stops with `WinError 1114` loading `c10.dll`, Windows is missing the Microsoft Visual C++
|
|
123
|
+
runtime that PyTorch needs: install [vc_redist.x64.exe](https://aka.ms/vs/17/release/vc_redist.x64.exe),
|
|
124
|
+
restart, and run the installer again.
|
|
125
|
+
|
|
120
126
|
or from source:
|
|
121
127
|
|
|
122
128
|
```bash
|
|
@@ -159,10 +159,33 @@ def capture_service(start: bool) -> str:
|
|
|
159
159
|
|
|
160
160
|
def embedding_model():
|
|
161
161
|
sys.path.insert(0, str(HERE))
|
|
162
|
-
from local_embedder import LOCAL_MODEL
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
162
|
+
from local_embedder import LOCAL_MODEL, own_model_cache
|
|
163
|
+
try:
|
|
164
|
+
from transformers import AutoModel, AutoTokenizer
|
|
165
|
+
except OSError as error:
|
|
166
|
+
if "1114" not in str(error):
|
|
167
|
+
raise
|
|
168
|
+
# WinError 1114 on c10.dll: PyTorch needs the Microsoft Visual C++ runtime, which a fresh
|
|
169
|
+
# Windows often lacks. Everything else is installed; recall uses word search until then.
|
|
170
|
+
sys.exit(f"\n{error}\n\nPyTorch could not load. Install the Microsoft Visual C++ "
|
|
171
|
+
"Redistributable (x64), restart, and run this again:\n"
|
|
172
|
+
" https://aka.ms/vs/17/release/vc_redist.x64.exe\n"
|
|
173
|
+
"The apps are already connected; until then recall works by word search only.")
|
|
174
|
+
|
|
175
|
+
def download(cache_dir):
|
|
176
|
+
AutoTokenizer.from_pretrained(LOCAL_MODEL, cache_dir=cache_dir)
|
|
177
|
+
AutoModel.from_pretrained(LOCAL_MODEL, cache_dir=cache_dir)
|
|
178
|
+
try:
|
|
179
|
+
download(None)
|
|
180
|
+
except OSError as error:
|
|
181
|
+
# ~/.cache refused (access denied): keep the model in Graph-MIND's own folder instead,
|
|
182
|
+
# where the server looks too (local_embedder.model_cache)
|
|
183
|
+
if "PermissionError" not in str(error) and not isinstance(error.__cause__, PermissionError):
|
|
184
|
+
raise
|
|
185
|
+
own = own_model_cache()
|
|
186
|
+
own.mkdir(parents=True, exist_ok=True)
|
|
187
|
+
step(f"the usual model folder is not writable; using {own}")
|
|
188
|
+
download(str(own))
|
|
166
189
|
|
|
167
190
|
|
|
168
191
|
def main(argv=None):
|
|
@@ -8,6 +8,7 @@ from __future__ import annotations
|
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
import hashlib
|
|
10
10
|
import math
|
|
11
|
+
import os
|
|
11
12
|
import threading
|
|
12
13
|
|
|
13
14
|
from associative_memory import _terms
|
|
@@ -18,6 +19,24 @@ ACTIVATE = dict(seed_limit=12, hops=2, fanout=8, max_nodes=24, limit=8) # froze
|
|
|
18
19
|
SEED_LIMIT = ACTIVATE["seed_limit"]
|
|
19
20
|
|
|
20
21
|
|
|
22
|
+
def own_model_cache() -> Path:
|
|
23
|
+
from development_paths import graph_mind_home
|
|
24
|
+
return graph_mind_home() / "models"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def model_cache():
|
|
28
|
+
"""None means Hugging Face's usual cache. Graph-MIND's own folder once the installer had to
|
|
29
|
+
use it: on one fresh Windows profile ~/.cache could not be written (access denied)."""
|
|
30
|
+
own = own_model_cache()
|
|
31
|
+
return str(own) if own.is_dir() else None
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def model_on_disk() -> bool:
|
|
35
|
+
name = "models--" + LOCAL_MODEL.replace("/", "--")
|
|
36
|
+
usual = Path(os.environ.get("HF_HOME") or Path.home() / ".cache" / "huggingface") / "hub"
|
|
37
|
+
return (usual / name).is_dir() or (own_model_cache() / name).is_dir()
|
|
38
|
+
|
|
39
|
+
|
|
21
40
|
class LocalEmbedder:
|
|
22
41
|
"""On-device multilingual embeddings via raw transformers (mean pooling, L2-normalized).
|
|
23
42
|
No text leaves the machine — required by the user-owned local-brain promise."""
|
|
@@ -42,8 +61,10 @@ class LocalEmbedder:
|
|
|
42
61
|
if LocalEmbedder._model is None:
|
|
43
62
|
import torch
|
|
44
63
|
from transformers import AutoModel, AutoTokenizer
|
|
45
|
-
|
|
46
|
-
LocalEmbedder.
|
|
64
|
+
cache = model_cache()
|
|
65
|
+
LocalEmbedder._tok = AutoTokenizer.from_pretrained(self.model_name, cache_dir=cache)
|
|
66
|
+
LocalEmbedder._model = AutoModel.from_pretrained(self.model_name,
|
|
67
|
+
cache_dir=cache).eval()
|
|
47
68
|
LocalEmbedder._torch = torch
|
|
48
69
|
|
|
49
70
|
def _key(self, text):
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "graph-mind-memory"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.4"
|
|
8
8
|
description = "Local-first memory for AI coding assistants: verbatim, on your own PC, no LLM calls at write time."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{graph_mind_memory-0.1.2 → graph_mind_memory-0.1.4}/graph_mind_memory.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|