sqlite-graph-memory 0.3.0__py3-none-any.whl → 0.3.1__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.
@@ -21,6 +21,6 @@ the indexer and the reranker will tell you what is missing instead of failing
21
21
  on an ``ImportError`` at startup.
22
22
  """
23
23
 
24
- __version__ = "0.3.0"
24
+ __version__ = "0.3.1"
25
25
 
26
26
  __all__ = ["__version__"]
@@ -22,6 +22,8 @@ Config (env, optional):
22
22
  import sys, os, json, subprocess, tempfile
23
23
  from pathlib import Path
24
24
 
25
+ from sqlite_graph_memory import __version__
26
+
25
27
  # Ensure UTF-8 for stdio communication on all platforms (including Windows console)
26
28
  try:
27
29
  sys.stdin.reconfigure(encoding='utf-8')
@@ -43,7 +45,7 @@ def _brain_ask_cmd():
43
45
 
44
46
  SERVER_INFO = {
45
47
  "name": "sqlite-graph-memory",
46
- "version": "0.3.0"
48
+ "version": __version__
47
49
  }
48
50
 
49
51
  TOOLS = [
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sqlite-graph-memory
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Associative memory for LLM agents: Graph RAG over a folder of markdown notes, in one SQLite file, with no server to run.
5
5
  Project-URL: Homepage, https://github.com/tonydzi/sqlite-graph-memory
6
6
  Project-URL: Repository, https://github.com/tonydzi/sqlite-graph-memory
7
7
  Project-URL: Changelog, https://github.com/tonydzi/sqlite-graph-memory/blob/main/CHANGELOG.md
8
8
  Project-URL: Issues, https://github.com/tonydzi/sqlite-graph-memory/issues
9
- Author: Anton Dziatkovskii
9
+ Author: Anton Dziatkovskii, Vardhman Gupta
10
10
  License: MIT License
11
11
 
12
12
  Copyright (c) 2026 Palo Alto AI Research Lab
@@ -44,22 +44,67 @@ Requires-Python: >=3.9
44
44
  Requires-Dist: numpy>=1.24
45
45
  Provides-Extra: embeddings
46
46
  Requires-Dist: numpy<2; (sys_platform == 'darwin' and platform_machine == 'x86_64') and extra == 'embeddings'
47
+ Requires-Dist: sentence-transformers<5; (sys_platform == 'darwin' and platform_machine == 'x86_64') and extra == 'embeddings'
47
48
  Requires-Dist: sentence-transformers>=2.6; extra == 'embeddings'
49
+ Requires-Dist: transformers<4.50; (sys_platform == 'darwin' and platform_machine == 'x86_64') and extra == 'embeddings'
48
50
  Description-Content-Type: text/markdown
49
51
 
50
52
  # sqlite-graph-memory
51
53
 
54
+ <!-- mcp-name: io.github.tonydzi/sqlite-graph-memory -->
55
+
52
56
  **Your agent forgets everything between sessions, and plain vector search gives it back
53
- flat, unrelated chunks. This gives it associative recall over your own markdown notes —
54
- one SQLite file, no graph database, no ETL pass, no server.**
57
+ flat, unrelated chunks. This gives it associative recall over your own markdown notes:
58
+ vector search finds the entry points, the `[[wikilinks]]` you already wrote are the graph.
59
+ One SQLite file, no graph database, no ETL pass, no server.**
60
+
61
+ ## Three commands
55
62
 
56
63
  ```bash
57
- pip install sqlite-graph-memory
64
+ pip install 'sqlite-graph-memory[embeddings]'
65
+ sgm-index ./notes
66
+ sgm-ask --ab "In which programming language is the tool behind Project Ouzel written?"
58
67
  ```
59
68
 
60
- > The first PyPI release has not landed yet (the publish workflow is in place).
61
- > Until it does: `pip install git+https://github.com/tonydzi/sqlite-graph-memory`
62
- > — same package, same five commands.
69
+ `./notes` is any folder of markdown notes. To get exactly the output below, use the
70
+ 202-note synthetic vault from this repo (it is not inside the pip package):
71
+
72
+ ```bash
73
+ git clone --depth 1 https://github.com/tonydzi/sqlite-graph-memory && cp -R sqlite-graph-memory/bench/vault ./notes
74
+ ```
75
+
76
+ Real output, top 5 of 12:
77
+
78
+ ```
79
+ --- DIRECT memory (vector) ---
80
+ 1. [ 1.66] project-ouzel
81
+ 2. [ -1.33] project-avocet
82
+ 3. [ -1.79] tool-cobbleset
83
+ 4. [ -2.44] meeting-2025-10-21-lighthouse-sync
84
+ 5. [ -2.70] person-severin-ibarrondo
85
+
86
+ --- ASSOCIATIVE memory (vector+graph) ---
87
+ 1. [ 1.66] project-ouzel
88
+ 2. [ 1.14] tool-lanternfish <== +graph
89
+ 3. [ -1.33] project-avocet
90
+ 4. [ -1.79] tool-cobbleset
91
+ 5. [ -2.44] meeting-2025-10-21-lighthouse-sync
92
+ ```
93
+
94
+ The answer lives in `tool-lanternfish` ("Lanternfish is written in Elixir"). The question
95
+ never names Lanternfish, so the vector pass does not find it in the top 12 at all.
96
+ `project-ouzel` links to it, so one graph hop puts it second.
97
+
98
+ That is the idea in one query, and it is not a blanket win. On this same vault vector-only
99
+ ranks ahead of graph mode overall; the numbers are in [`bench/`](bench/README.md). `--ab`
100
+ exists so you can measure which one wins on your own notes.
101
+
102
+ **From any MCP client** (Claude Desktop, Cursor, Zed, Windsurf): `sgm-mcp` after the install
103
+ above, or `uvx --with 'sqlite-graph-memory[embeddings]' sqlite-graph-memory`. Set
104
+ `BRAIN_INDEX_DIR` to the `index` folder `sgm-index` wrote. Config:
105
+ [`examples/mcp-config.json`](examples/mcp-config.json).
106
+
107
+ ## What it is
63
108
 
64
109
  Graph RAG on SQLite for AI agents — a working pilot, not a framework. It is the extracted
65
110
  memory layer of a personal "second brain" agent setup: vector search finds the entry
@@ -0,0 +1,12 @@
1
+ sqlite_graph_memory/__init__.py,sha256=zmDhq3ADXY29WMzJp6FtMnBDanbenCU1bQ9Sa3cLwv0,1151
2
+ sqlite_graph_memory/brain_ask.py,sha256=IU8AVk8VvDJr0XC02a7Foil_f0ui0N-Rr_jD734Onbk,14104
3
+ sqlite_graph_memory/index_notes.py,sha256=Hmt0_VVJHS-zXhPPw9h2te8iG1W48f1tJ_H0ALt9aLk,5333
4
+ sqlite_graph_memory/mcp_server.py,sha256=2pBRuKcWTIfQHfM6-P1fa1x1s1377RnAlyrsZdABFQM,8820
5
+ sqlite_graph_memory/schema.sql,sha256=8aySXKw3Azaxyzqbd76mKTfOaDP7FlpkLXtgwA8ZVK4,2543
6
+ sqlite_graph_memory/turnstate_hook.py,sha256=fypGmUcHQkzlRN74tvIG07lr9uAXpp2GjetqthkuMc8,8641
7
+ sqlite_graph_memory/turnstate_show.py,sha256=IED7fmJQM5VgBNwxmEoNSZtujRmWja-qVPg5ckbWVnY,2909
8
+ sqlite_graph_memory-0.3.1.dist-info/METADATA,sha256=8t6SsujTinP7SCt58hrfQKDrJIvMLw1tKlJfddGqCU4,28958
9
+ sqlite_graph_memory-0.3.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
10
+ sqlite_graph_memory-0.3.1.dist-info/entry_points.txt,sha256=klRDFFhyh3MrP3dfrF9wYciV9QnprfzmQCxU1lJ2FgU,338
11
+ sqlite_graph_memory-0.3.1.dist-info/licenses/LICENSE,sha256=p88nZdrfMUiES3_MpUEwhGmqz2hQFpyMh0k0cqdpfU8,1082
12
+ sqlite_graph_memory-0.3.1.dist-info/RECORD,,
@@ -4,3 +4,4 @@ sgm-index = sqlite_graph_memory.index_notes:main
4
4
  sgm-mcp = sqlite_graph_memory.mcp_server:main
5
5
  sgm-turnstate-hook = sqlite_graph_memory.turnstate_hook:main
6
6
  sgm-turnstate-show = sqlite_graph_memory.turnstate_show:main
7
+ sqlite-graph-memory = sqlite_graph_memory.mcp_server:main
@@ -1,12 +0,0 @@
1
- sqlite_graph_memory/__init__.py,sha256=T5govp5VGbquVPCrt9A206zFxMoSc9cyVZiP-1sMBcM,1151
2
- sqlite_graph_memory/brain_ask.py,sha256=IU8AVk8VvDJr0XC02a7Foil_f0ui0N-Rr_jD734Onbk,14104
3
- sqlite_graph_memory/index_notes.py,sha256=Hmt0_VVJHS-zXhPPw9h2te8iG1W48f1tJ_H0ALt9aLk,5333
4
- sqlite_graph_memory/mcp_server.py,sha256=ncswz2La4JICUmvYhiOM5x9KipxbK7PXjxIyepKtgns,8771
5
- sqlite_graph_memory/schema.sql,sha256=8aySXKw3Azaxyzqbd76mKTfOaDP7FlpkLXtgwA8ZVK4,2543
6
- sqlite_graph_memory/turnstate_hook.py,sha256=fypGmUcHQkzlRN74tvIG07lr9uAXpp2GjetqthkuMc8,8641
7
- sqlite_graph_memory/turnstate_show.py,sha256=IED7fmJQM5VgBNwxmEoNSZtujRmWja-qVPg5ckbWVnY,2909
8
- sqlite_graph_memory-0.3.0.dist-info/METADATA,sha256=Ac_rhb4QZJz0bbKR2XqErNIKX2IiV3BDP9ilCBlSWzI,27081
9
- sqlite_graph_memory-0.3.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
10
- sqlite_graph_memory-0.3.0.dist-info/entry_points.txt,sha256=dyQ1KGmf1xgBfDKb3m_2GTXpF4IR4SDGm53oBNZy-CI,280
11
- sqlite_graph_memory-0.3.0.dist-info/licenses/LICENSE,sha256=p88nZdrfMUiES3_MpUEwhGmqz2hQFpyMh0k0cqdpfU8,1082
12
- sqlite_graph_memory-0.3.0.dist-info/RECORD,,