synapse-layer 1.2.0__tar.gz → 1.2.1__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.
- synapse_layer-1.2.1/PKG-INFO +306 -0
- synapse_layer-1.2.1/README.md +256 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/pyproject.toml +8 -10
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_layer/__init__.py +1 -1
- synapse_layer-1.2.1/synapse_layer.egg-info/PKG-INFO +306 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_layer.egg-info/requires.txt +1 -1
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/__init__.py +2 -2
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/backends/__init__.py +2 -2
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/backends/forge_backend.py +3 -3
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/client.py +1 -1
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/core.py +2 -2
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/integrations/langchain_memory.py +1 -1
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_forge_backend.py +2 -2
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_privacy.py +2 -2
- synapse_layer-1.2.0/PKG-INFO +0 -377
- synapse_layer-1.2.0/README.md +0 -327
- synapse_layer-1.2.0/synapse_layer.egg-info/PKG-INFO +0 -377
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/LICENSE +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/setup.cfg +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_layer.egg-info/SOURCES.txt +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_layer.egg-info/dependency_links.txt +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_layer.egg-info/top_level.txt +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/autosave/__init__.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/autosave/engine.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/autosave/formatter.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/autosave/policy.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/autosave/triggers.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/autosave/types.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/backends/interface.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/backends/memory_backend.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/backends/sqlite_backend.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/crypto/__init__.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/crypto/aes.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/embeddings.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/engine/__init__.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/engine/handover.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/engine/validator.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/exceptions.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/integrations/__init__.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/integrations/autogen_memory.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/integrations/crewai_memory.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/integrations/llamaindex.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/integrations/semantic_kernel.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/plugins/__init__.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/plugins/defaults.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/plugins/interfaces.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/plugins/plugin_loader.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/privacy.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/router.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/sanitizer.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/synapse_memory/wrapper.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_autosave.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_backends.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_core_integration.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_coverage_boost.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_crypto.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_handover.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_plugin_architecture.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_sanitizer.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_validator.py +0 -0
- {synapse_layer-1.2.0 → synapse_layer-1.2.1}/tests/test_wrapper.py +0 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: synapse-layer
|
|
3
|
+
Version: 1.2.1
|
|
4
|
+
Summary: Persistent memory infrastructure for AI agents — AES-256-GCM encrypted at rest, semantic search, MCP-native.
|
|
5
|
+
Author-email: Ismael Marchi <founder.synapselayer@proton.me>
|
|
6
|
+
License: Apache 2.0
|
|
7
|
+
Project-URL: Homepage, https://synapselayer.org
|
|
8
|
+
Project-URL: Repository, https://github.com/SynapseLayer/synapse-layer
|
|
9
|
+
Project-URL: Documentation, https://synapselayer.org/docs
|
|
10
|
+
Project-URL: Issues, https://github.com/SynapseLayer/synapse-layer/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/SynapseLayer/synapse-layer/blob/main/CHANGELOG.md
|
|
12
|
+
Project-URL: Security, https://github.com/SynapseLayer/synapse-layer/blob/main/SECURITY.md
|
|
13
|
+
Keywords: mcp,memory,ai-agents,pgvector,encryption,persistent-memory,agentic-ai,cross-agent-memory
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
23
|
+
Classifier: Topic :: Security :: Cryptography
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: cryptography>=46.0.7
|
|
28
|
+
Requires-Dist: pydantic>=2.4.0
|
|
29
|
+
Requires-Dist: httpx>=0.27.0
|
|
30
|
+
Provides-Extra: langchain
|
|
31
|
+
Requires-Dist: langchain-core>=0.3.0; extra == "langchain"
|
|
32
|
+
Provides-Extra: crewai
|
|
33
|
+
Requires-Dist: crewai>=1.14.0; extra == "crewai"
|
|
34
|
+
Provides-Extra: autogen
|
|
35
|
+
Requires-Dist: autogen-core>=0.7.0; extra == "autogen"
|
|
36
|
+
Provides-Extra: llamaindex
|
|
37
|
+
Requires-Dist: llama-index-core>=0.11.0; extra == "llamaindex"
|
|
38
|
+
Provides-Extra: semantic-kernel
|
|
39
|
+
Requires-Dist: semantic-kernel>=1.0.0; extra == "semantic-kernel"
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
|
|
43
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
|
|
44
|
+
Requires-Dist: respx>=0.21.0; extra == "dev"
|
|
45
|
+
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
46
|
+
Requires-Dist: isort>=5.13.0; extra == "dev"
|
|
47
|
+
Requires-Dist: mypy>=1.8.0; extra == "dev"
|
|
48
|
+
Requires-Dist: ruff>=0.3.0; extra == "dev"
|
|
49
|
+
Dynamic: license-file
|
|
50
|
+
|
|
51
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
52
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
53
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
54
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
55
|
+
|
|
56
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
57
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
58
|
+
|
|
59
|
+
<div align="center">
|
|
60
|
+
|
|
61
|
+
# 🧠 Synapse Layer
|
|
62
|
+
|
|
63
|
+
### RAG retrieves. Synapse remembers.
|
|
64
|
+
|
|
65
|
+
**Persistent memory infrastructure for AI agents — AES-256-GCM encrypted at rest, semantic search, MCP-native.**
|
|
66
|
+
|
|
67
|
+
Synapse Layer is open-source persistent memory infrastructure for AI agents and assistants. Memories are encrypted at rest with AES-256-GCM, indexed via pgvector HNSW for semantic recall, and exposed through MCP JSON-RPC for native integration with Claude, GPT, Gemini, and any MCP-compatible client. Apache 2.0 licensed.
|
|
68
|
+
|
|
69
|
+
[](https://pypi.org/project/synapse-layer/)
|
|
70
|
+
[](https://pypi.org/project/synapse-layer/)
|
|
71
|
+
[](https://pypi.org/project/synapse-layer/)
|
|
72
|
+
[](https://modelcontextprotocol.io)
|
|
73
|
+
[](LICENSE)
|
|
74
|
+
[](https://smithery.ai/servers/synapselayer/synapse-protocol)
|
|
75
|
+
|
|
76
|
+
[Website](https://synapselayer.org) · [Docs](https://forge.synapselayer.org/docs) · [PyPI](https://pypi.org/project/synapse-layer/) · [Forge](https://forge.synapselayer.org)
|
|
77
|
+
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## ⚡ 30-Second Quickstart
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pip install synapse-layer
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
from synapse_layer import Synapse
|
|
90
|
+
|
|
91
|
+
s = Synapse(token="sk_connect_YOUR_TOKEN")
|
|
92
|
+
|
|
93
|
+
s.save("user likes coffee")
|
|
94
|
+
print(s.recall("what does user like?"))
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Get your token at [forge.synapselayer.org](https://forge.synapselayer.org) → Dashboard → Connect
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## What is Synapse Layer?
|
|
102
|
+
|
|
103
|
+
The **persistent memory layer for AI agents** — the missing piece between stateless LLMs and real continuity of context.
|
|
104
|
+
|
|
105
|
+
Your AI agents forget everything between sessions. Synapse Layer fixes that.
|
|
106
|
+
|
|
107
|
+
| Feature | Description |
|
|
108
|
+
|---------|-------------|
|
|
109
|
+
| 🔐 **Encrypted at rest** | AES-256-GCM with per-operation random IV and HMAC-SHA-256 integrity |
|
|
110
|
+
| 🧩 **One-click connect** | Claude Desktop, Cursor, LangChain, CrewAI, n8n |
|
|
111
|
+
| 🌐 **Cross-agent memory** | Save in ChatGPT, recall in Claude |
|
|
112
|
+
| ⚡ **MCP-native** | Any MCP-compatible agent |
|
|
113
|
+
| 🔒 **Header-first auth** | Tokens never in URLs or logs |
|
|
114
|
+
| 🎯 **Trust Quotient** | Deterministic recall — memories ranked by confidence, not recency alone |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Why Synapse Layer?
|
|
119
|
+
|
|
120
|
+
> Your AI agents forget everything between sessions. Synapse Layer fixes that — in one line.
|
|
121
|
+
|
|
122
|
+
| Without Synapse Layer | With Synapse Layer |
|
|
123
|
+
|---|---|
|
|
124
|
+
| Agent forgets context every session | Persistent memory across all sessions |
|
|
125
|
+
| Memory locked to one model | Cross-agent: save in ChatGPT, recall in Claude |
|
|
126
|
+
| No audit trail | Trust Quotient scoring on every memory |
|
|
127
|
+
| Complex integration | `pip install synapse-layer` + 3 lines of code |
|
|
128
|
+
| Plaintext stored on servers | AES-256-GCM encrypted at rest |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Use Cases
|
|
133
|
+
|
|
134
|
+
- **Long-term assistant memory** — persist user preferences, facts, and prior decisions across sessions.
|
|
135
|
+
- **Cross-agent continuity** — save context in one agent and recall it in another.
|
|
136
|
+
- **Secure memory for MCP clients** — connect Claude Desktop, Cursor, and other MCP-compatible tools to a governed memory layer.
|
|
137
|
+
- **Operational memory for teams** — maintain structured context, trust scoring, and searchable recall for production agents.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Install
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
pip install synapse-layer
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Quick Start
|
|
148
|
+
|
|
149
|
+
### Local SDK — in-process memory
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
import asyncio
|
|
153
|
+
from synapse_layer import SynapseClient
|
|
154
|
+
|
|
155
|
+
async def main():
|
|
156
|
+
memory = SynapseClient(agent_id="my-agent")
|
|
157
|
+
|
|
158
|
+
# Save
|
|
159
|
+
await memory.store("User prefers dark mode and concise answers")
|
|
160
|
+
|
|
161
|
+
# Recall
|
|
162
|
+
results = await memory.recall("user preferences")
|
|
163
|
+
for r in results:
|
|
164
|
+
print(f"[TQ={r.trust_quotient:.2f}] {r.content}")
|
|
165
|
+
|
|
166
|
+
asyncio.run(main())
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Cloud — Forge API (persistent, cross-agent)
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
from synapse_memory.client import Synapse
|
|
173
|
+
|
|
174
|
+
client = Synapse(token="sk_connect_YOUR_TOKEN")
|
|
175
|
+
client.remember("User prefers dark mode and concise answers")
|
|
176
|
+
results = client.recall("user preferences")
|
|
177
|
+
for r in results:
|
|
178
|
+
print(r["content"])
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Get your token at [forge.synapselayer.org](https://forge.synapselayer.org) → Dashboard → Connect
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 13 MCP Tools at a Glance
|
|
186
|
+
|
|
187
|
+
Synapse Layer currently exposes 13 MCP tools for persistent memory workflows:
|
|
188
|
+
|
|
189
|
+
- `recall`
|
|
190
|
+
- `save_to_synapse`
|
|
191
|
+
- `process_text`
|
|
192
|
+
- `search`
|
|
193
|
+
- `health_check`
|
|
194
|
+
- `initialize_context`
|
|
195
|
+
- `save_memory`
|
|
196
|
+
- `store_memory`
|
|
197
|
+
- `recall_memory`
|
|
198
|
+
- `list_memories`
|
|
199
|
+
- `memory_feedback`
|
|
200
|
+
- `neural_handover`
|
|
201
|
+
- `slo_report`
|
|
202
|
+
|
|
203
|
+
These tools cover memory capture, semantic recall, structured storage, feedback loops, agent handoff, and operational observability.
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Deployment Modes
|
|
208
|
+
|
|
209
|
+
### Local SDK
|
|
210
|
+
Use the local SDK when you want in-process memory access inside your Python application.
|
|
211
|
+
|
|
212
|
+
Best for:
|
|
213
|
+
- local prototypes
|
|
214
|
+
- Python-native workflows
|
|
215
|
+
- fast integration into existing apps
|
|
216
|
+
|
|
217
|
+
### Cloud / Forge API
|
|
218
|
+
Use Forge when you need persistent, cross-session, and cross-agent memory with managed access tokens.
|
|
219
|
+
|
|
220
|
+
Best for:
|
|
221
|
+
- production assistants
|
|
222
|
+
- multi-agent systems
|
|
223
|
+
- MCP-based integrations
|
|
224
|
+
- shared memory across tools and sessions
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## MCP Integration (Claude Desktop / Cursor)
|
|
229
|
+
|
|
230
|
+
Add to `claude_desktop_config.json`:
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"mcpServers": {
|
|
235
|
+
"synapse-layer": {
|
|
236
|
+
"command": "npx",
|
|
237
|
+
"args": [
|
|
238
|
+
"mcp-remote",
|
|
239
|
+
"https://forge.synapselayer.org/mcp",
|
|
240
|
+
"--header",
|
|
241
|
+
"x-connect-token: sk_connect_YOUR_TOKEN"
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Config file location:
|
|
249
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
250
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
251
|
+
- Linux: `~/.config/Claude/claude_desktop_config.json`
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## API — Header-First Auth
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Health check
|
|
259
|
+
curl -H "x-connect-token: sk_connect_YOUR_TOKEN" \
|
|
260
|
+
https://forge.synapselayer.org/api/connect/health
|
|
261
|
+
|
|
262
|
+
# Save memory
|
|
263
|
+
curl -X POST \
|
|
264
|
+
-H "x-connect-token: sk_connect_YOUR_TOKEN" \
|
|
265
|
+
-H "Content-Type: application/json" \
|
|
266
|
+
-d '{"content": "User is a Python developer"}' \
|
|
267
|
+
https://forge.synapselayer.org/api/v1/capture
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Security
|
|
273
|
+
|
|
274
|
+
| Feature | Implementation |
|
|
275
|
+
|---------|---------------|
|
|
276
|
+
| Encryption | AES-256-GCM at rest with per-operation random IV |
|
|
277
|
+
| Integrity | HMAC-SHA-256 on content |
|
|
278
|
+
| Auth | Header-first (`x-connect-token`) — tokens never in URLs or logs |
|
|
279
|
+
| Privacy | Content sanitization + tenant-scoped encrypted storage |
|
|
280
|
+
| Isolation | 1 user = 1 tenant = 1 private mind |
|
|
281
|
+
|
|
282
|
+
See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Related Projects
|
|
287
|
+
|
|
288
|
+
| Project | Description |
|
|
289
|
+
|---------|-------------|
|
|
290
|
+
| [synapse-sdk-python](https://github.com/SynapseLayer/synapse-sdk-python) | Python SDK — LangChain, CrewAI, and A2A protocol adapters |
|
|
291
|
+
| [synapse-layer-skill](https://github.com/SynapseLayer/synapse-layer-skill) | MCP skill configuration for Claude Desktop, Cursor, Windsurf |
|
|
292
|
+
| [synapse-layer-langgraph](https://github.com/SynapseLayer/synapse-layer-langgraph) | LangGraph checkpoint saver with encrypted state persistence |
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## Governance
|
|
297
|
+
|
|
298
|
+
- All public claims follow the [Public Claims Matrix](docs/PUBLIC_CLAIMS_MATRIX.md).
|
|
299
|
+
- Architecture details that reveal benefits are public; mechanisms that enable them are private.
|
|
300
|
+
- Claim = Reality. If it's not implemented, it's not in the README.
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## License
|
|
305
|
+
|
|
306
|
+
Apache-2.0 © Synapse Layer
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
2
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
3
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
4
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
5
|
+
|
|
6
|
+
[](https://www.npmjs.com/package/synapse-layer)
|
|
7
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
8
|
+
|
|
9
|
+
<div align="center">
|
|
10
|
+
|
|
11
|
+
# 🧠 Synapse Layer
|
|
12
|
+
|
|
13
|
+
### RAG retrieves. Synapse remembers.
|
|
14
|
+
|
|
15
|
+
**Persistent memory infrastructure for AI agents — AES-256-GCM encrypted at rest, semantic search, MCP-native.**
|
|
16
|
+
|
|
17
|
+
Synapse Layer is open-source persistent memory infrastructure for AI agents and assistants. Memories are encrypted at rest with AES-256-GCM, indexed via pgvector HNSW for semantic recall, and exposed through MCP JSON-RPC for native integration with Claude, GPT, Gemini, and any MCP-compatible client. Apache 2.0 licensed.
|
|
18
|
+
|
|
19
|
+
[](https://pypi.org/project/synapse-layer/)
|
|
20
|
+
[](https://pypi.org/project/synapse-layer/)
|
|
21
|
+
[](https://pypi.org/project/synapse-layer/)
|
|
22
|
+
[](https://modelcontextprotocol.io)
|
|
23
|
+
[](LICENSE)
|
|
24
|
+
[](https://smithery.ai/servers/synapselayer/synapse-protocol)
|
|
25
|
+
|
|
26
|
+
[Website](https://synapselayer.org) · [Docs](https://forge.synapselayer.org/docs) · [PyPI](https://pypi.org/project/synapse-layer/) · [Forge](https://forge.synapselayer.org)
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ⚡ 30-Second Quickstart
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pip install synapse-layer
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
from synapse_layer import Synapse
|
|
40
|
+
|
|
41
|
+
s = Synapse(token="sk_connect_YOUR_TOKEN")
|
|
42
|
+
|
|
43
|
+
s.save("user likes coffee")
|
|
44
|
+
print(s.recall("what does user like?"))
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Get your token at [forge.synapselayer.org](https://forge.synapselayer.org) → Dashboard → Connect
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## What is Synapse Layer?
|
|
52
|
+
|
|
53
|
+
The **persistent memory layer for AI agents** — the missing piece between stateless LLMs and real continuity of context.
|
|
54
|
+
|
|
55
|
+
Your AI agents forget everything between sessions. Synapse Layer fixes that.
|
|
56
|
+
|
|
57
|
+
| Feature | Description |
|
|
58
|
+
|---------|-------------|
|
|
59
|
+
| 🔐 **Encrypted at rest** | AES-256-GCM with per-operation random IV and HMAC-SHA-256 integrity |
|
|
60
|
+
| 🧩 **One-click connect** | Claude Desktop, Cursor, LangChain, CrewAI, n8n |
|
|
61
|
+
| 🌐 **Cross-agent memory** | Save in ChatGPT, recall in Claude |
|
|
62
|
+
| ⚡ **MCP-native** | Any MCP-compatible agent |
|
|
63
|
+
| 🔒 **Header-first auth** | Tokens never in URLs or logs |
|
|
64
|
+
| 🎯 **Trust Quotient** | Deterministic recall — memories ranked by confidence, not recency alone |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Why Synapse Layer?
|
|
69
|
+
|
|
70
|
+
> Your AI agents forget everything between sessions. Synapse Layer fixes that — in one line.
|
|
71
|
+
|
|
72
|
+
| Without Synapse Layer | With Synapse Layer |
|
|
73
|
+
|---|---|
|
|
74
|
+
| Agent forgets context every session | Persistent memory across all sessions |
|
|
75
|
+
| Memory locked to one model | Cross-agent: save in ChatGPT, recall in Claude |
|
|
76
|
+
| No audit trail | Trust Quotient scoring on every memory |
|
|
77
|
+
| Complex integration | `pip install synapse-layer` + 3 lines of code |
|
|
78
|
+
| Plaintext stored on servers | AES-256-GCM encrypted at rest |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Use Cases
|
|
83
|
+
|
|
84
|
+
- **Long-term assistant memory** — persist user preferences, facts, and prior decisions across sessions.
|
|
85
|
+
- **Cross-agent continuity** — save context in one agent and recall it in another.
|
|
86
|
+
- **Secure memory for MCP clients** — connect Claude Desktop, Cursor, and other MCP-compatible tools to a governed memory layer.
|
|
87
|
+
- **Operational memory for teams** — maintain structured context, trust scoring, and searchable recall for production agents.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Install
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install synapse-layer
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Quick Start
|
|
98
|
+
|
|
99
|
+
### Local SDK — in-process memory
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
import asyncio
|
|
103
|
+
from synapse_layer import SynapseClient
|
|
104
|
+
|
|
105
|
+
async def main():
|
|
106
|
+
memory = SynapseClient(agent_id="my-agent")
|
|
107
|
+
|
|
108
|
+
# Save
|
|
109
|
+
await memory.store("User prefers dark mode and concise answers")
|
|
110
|
+
|
|
111
|
+
# Recall
|
|
112
|
+
results = await memory.recall("user preferences")
|
|
113
|
+
for r in results:
|
|
114
|
+
print(f"[TQ={r.trust_quotient:.2f}] {r.content}")
|
|
115
|
+
|
|
116
|
+
asyncio.run(main())
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Cloud — Forge API (persistent, cross-agent)
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
from synapse_memory.client import Synapse
|
|
123
|
+
|
|
124
|
+
client = Synapse(token="sk_connect_YOUR_TOKEN")
|
|
125
|
+
client.remember("User prefers dark mode and concise answers")
|
|
126
|
+
results = client.recall("user preferences")
|
|
127
|
+
for r in results:
|
|
128
|
+
print(r["content"])
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Get your token at [forge.synapselayer.org](https://forge.synapselayer.org) → Dashboard → Connect
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 13 MCP Tools at a Glance
|
|
136
|
+
|
|
137
|
+
Synapse Layer currently exposes 13 MCP tools for persistent memory workflows:
|
|
138
|
+
|
|
139
|
+
- `recall`
|
|
140
|
+
- `save_to_synapse`
|
|
141
|
+
- `process_text`
|
|
142
|
+
- `search`
|
|
143
|
+
- `health_check`
|
|
144
|
+
- `initialize_context`
|
|
145
|
+
- `save_memory`
|
|
146
|
+
- `store_memory`
|
|
147
|
+
- `recall_memory`
|
|
148
|
+
- `list_memories`
|
|
149
|
+
- `memory_feedback`
|
|
150
|
+
- `neural_handover`
|
|
151
|
+
- `slo_report`
|
|
152
|
+
|
|
153
|
+
These tools cover memory capture, semantic recall, structured storage, feedback loops, agent handoff, and operational observability.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Deployment Modes
|
|
158
|
+
|
|
159
|
+
### Local SDK
|
|
160
|
+
Use the local SDK when you want in-process memory access inside your Python application.
|
|
161
|
+
|
|
162
|
+
Best for:
|
|
163
|
+
- local prototypes
|
|
164
|
+
- Python-native workflows
|
|
165
|
+
- fast integration into existing apps
|
|
166
|
+
|
|
167
|
+
### Cloud / Forge API
|
|
168
|
+
Use Forge when you need persistent, cross-session, and cross-agent memory with managed access tokens.
|
|
169
|
+
|
|
170
|
+
Best for:
|
|
171
|
+
- production assistants
|
|
172
|
+
- multi-agent systems
|
|
173
|
+
- MCP-based integrations
|
|
174
|
+
- shared memory across tools and sessions
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## MCP Integration (Claude Desktop / Cursor)
|
|
179
|
+
|
|
180
|
+
Add to `claude_desktop_config.json`:
|
|
181
|
+
|
|
182
|
+
```json
|
|
183
|
+
{
|
|
184
|
+
"mcpServers": {
|
|
185
|
+
"synapse-layer": {
|
|
186
|
+
"command": "npx",
|
|
187
|
+
"args": [
|
|
188
|
+
"mcp-remote",
|
|
189
|
+
"https://forge.synapselayer.org/mcp",
|
|
190
|
+
"--header",
|
|
191
|
+
"x-connect-token: sk_connect_YOUR_TOKEN"
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Config file location:
|
|
199
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
200
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
201
|
+
- Linux: `~/.config/Claude/claude_desktop_config.json`
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## API — Header-First Auth
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Health check
|
|
209
|
+
curl -H "x-connect-token: sk_connect_YOUR_TOKEN" \
|
|
210
|
+
https://forge.synapselayer.org/api/connect/health
|
|
211
|
+
|
|
212
|
+
# Save memory
|
|
213
|
+
curl -X POST \
|
|
214
|
+
-H "x-connect-token: sk_connect_YOUR_TOKEN" \
|
|
215
|
+
-H "Content-Type: application/json" \
|
|
216
|
+
-d '{"content": "User is a Python developer"}' \
|
|
217
|
+
https://forge.synapselayer.org/api/v1/capture
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Security
|
|
223
|
+
|
|
224
|
+
| Feature | Implementation |
|
|
225
|
+
|---------|---------------|
|
|
226
|
+
| Encryption | AES-256-GCM at rest with per-operation random IV |
|
|
227
|
+
| Integrity | HMAC-SHA-256 on content |
|
|
228
|
+
| Auth | Header-first (`x-connect-token`) — tokens never in URLs or logs |
|
|
229
|
+
| Privacy | Content sanitization + tenant-scoped encrypted storage |
|
|
230
|
+
| Isolation | 1 user = 1 tenant = 1 private mind |
|
|
231
|
+
|
|
232
|
+
See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Related Projects
|
|
237
|
+
|
|
238
|
+
| Project | Description |
|
|
239
|
+
|---------|-------------|
|
|
240
|
+
| [synapse-sdk-python](https://github.com/SynapseLayer/synapse-sdk-python) | Python SDK — LangChain, CrewAI, and A2A protocol adapters |
|
|
241
|
+
| [synapse-layer-skill](https://github.com/SynapseLayer/synapse-layer-skill) | MCP skill configuration for Claude Desktop, Cursor, Windsurf |
|
|
242
|
+
| [synapse-layer-langgraph](https://github.com/SynapseLayer/synapse-layer-langgraph) | LangGraph checkpoint saver with encrypted state persistence |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Governance
|
|
247
|
+
|
|
248
|
+
- All public claims follow the [Public Claims Matrix](docs/PUBLIC_CLAIMS_MATRIX.md).
|
|
249
|
+
- Architecture details that reveal benefits are public; mechanisms that enable them are private.
|
|
250
|
+
- Claim = Reality. If it's not implemented, it's not in the README.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## License
|
|
255
|
+
|
|
256
|
+
Apache-2.0 © Synapse Layer
|
|
@@ -4,23 +4,21 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "synapse-layer"
|
|
7
|
-
version = "1.2.
|
|
8
|
-
description = "
|
|
7
|
+
version = "1.2.1"
|
|
8
|
+
description = "Persistent memory infrastructure for AI agents — AES-256-GCM encrypted at rest, semantic search, MCP-native."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "Apache 2.0"}
|
|
11
11
|
authors = [{name = "Ismael Marchi", email = "founder.synapselayer@proton.me"}]
|
|
12
12
|
|
|
13
13
|
keywords = [
|
|
14
|
-
"
|
|
14
|
+
"mcp",
|
|
15
15
|
"memory",
|
|
16
|
-
"
|
|
16
|
+
"ai-agents",
|
|
17
|
+
"pgvector",
|
|
17
18
|
"encryption",
|
|
18
|
-
"
|
|
19
|
+
"persistent-memory",
|
|
19
20
|
"agentic-ai",
|
|
20
|
-
"
|
|
21
|
-
"cognitive-security",
|
|
22
|
-
"differential-privacy",
|
|
23
|
-
"neural-handover",
|
|
21
|
+
"cross-agent-memory",
|
|
24
22
|
]
|
|
25
23
|
|
|
26
24
|
classifiers = [
|
|
@@ -41,7 +39,6 @@ dependencies = [
|
|
|
41
39
|
"cryptography>=46.0.7",
|
|
42
40
|
"pydantic>=2.4.0",
|
|
43
41
|
"httpx>=0.27.0",
|
|
44
|
-
"python-dotenv>=1.0.1",
|
|
45
42
|
]
|
|
46
43
|
|
|
47
44
|
[project.optional-dependencies]
|
|
@@ -64,6 +61,7 @@ dev = [
|
|
|
64
61
|
"pytest>=8.0.0",
|
|
65
62
|
"pytest-cov>=5.0.0",
|
|
66
63
|
"pytest-asyncio>=0.23.0",
|
|
64
|
+
"respx>=0.21.0",
|
|
67
65
|
"black>=24.0.0",
|
|
68
66
|
"isort>=5.13.0",
|
|
69
67
|
"mypy>=1.8.0",
|