slowave 0.1.3__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.
Files changed (57) hide show
  1. slowave-0.1.3/LICENSE +21 -0
  2. slowave-0.1.3/PKG-INFO +168 -0
  3. slowave-0.1.3/README.md +130 -0
  4. slowave-0.1.3/pyproject.toml +60 -0
  5. slowave-0.1.3/setup.cfg +4 -0
  6. slowave-0.1.3/slowave/__init__.py +10 -0
  7. slowave-0.1.3/slowave/__main__.py +13 -0
  8. slowave-0.1.3/slowave/cli/__init__.py +0 -0
  9. slowave-0.1.3/slowave/cli/main.py +607 -0
  10. slowave-0.1.3/slowave/core/__init__.py +0 -0
  11. slowave-0.1.3/slowave/core/config.py +56 -0
  12. slowave-0.1.3/slowave/core/consolidation.py +533 -0
  13. slowave-0.1.3/slowave/core/context.py +450 -0
  14. slowave-0.1.3/slowave/core/engine.py +751 -0
  15. slowave-0.1.3/slowave/core/paths.py +13 -0
  16. slowave-0.1.3/slowave/dashboard/__init__.py +0 -0
  17. slowave-0.1.3/slowave/dashboard/app.py +687 -0
  18. slowave-0.1.3/slowave/latent/__init__.py +0 -0
  19. slowave-0.1.3/slowave/latent/episodic_store.py +196 -0
  20. slowave-0.1.3/slowave/latent/graph_manager.py +160 -0
  21. slowave-0.1.3/slowave/latent/metrics.py +53 -0
  22. slowave-0.1.3/slowave/latent/replay_engine.py +497 -0
  23. slowave-0.1.3/slowave/latent/retrieval.py +514 -0
  24. slowave-0.1.3/slowave/latent/salience.py +61 -0
  25. slowave-0.1.3/slowave/latent/schema.py +298 -0
  26. slowave-0.1.3/slowave/latent/semantic_store.py +304 -0
  27. slowave-0.1.3/slowave/latent/synthetic.py +56 -0
  28. slowave-0.1.3/slowave/latent/temporal.py +130 -0
  29. slowave-0.1.3/slowave/latent/transition_model.py +57 -0
  30. slowave-0.1.3/slowave/latent/types.py +51 -0
  31. slowave-0.1.3/slowave/llm/__init__.py +37 -0
  32. slowave-0.1.3/slowave/llm/base.py +52 -0
  33. slowave-0.1.3/slowave/llm/ollama_backend.py +78 -0
  34. slowave-0.1.3/slowave/llm/openrouter_backend.py +204 -0
  35. slowave-0.1.3/slowave/llm/prompts/extract_schema.txt +103 -0
  36. slowave-0.1.3/slowave/llm/prompts/judge_contradiction.txt +23 -0
  37. slowave-0.1.3/slowave/mcp/__init__.py +0 -0
  38. slowave-0.1.3/slowave/mcp/server.py +337 -0
  39. slowave-0.1.3/slowave/storage/__init__.py +0 -0
  40. slowave-0.1.3/slowave/storage/schema.sql +205 -0
  41. slowave-0.1.3/slowave/storage/sqlite_db.py +161 -0
  42. slowave-0.1.3/slowave/symbolic/__init__.py +0 -0
  43. slowave-0.1.3/slowave/symbolic/contradiction.py +62 -0
  44. slowave-0.1.3/slowave/symbolic/encoder.py +77 -0
  45. slowave-0.1.3/slowave/symbolic/episode_text.py +91 -0
  46. slowave-0.1.3/slowave/symbolic/raw_log.py +152 -0
  47. slowave-0.1.3/slowave/symbolic/schema_extractor.py +122 -0
  48. slowave-0.1.3/slowave/symbolic/schema_store.py +732 -0
  49. slowave-0.1.3/slowave/utils/__init__.py +0 -0
  50. slowave-0.1.3/slowave/utils/logging.py +0 -0
  51. slowave-0.1.3/slowave/utils/vec.py +40 -0
  52. slowave-0.1.3/slowave.egg-info/PKG-INFO +168 -0
  53. slowave-0.1.3/slowave.egg-info/SOURCES.txt +55 -0
  54. slowave-0.1.3/slowave.egg-info/dependency_links.txt +1 -0
  55. slowave-0.1.3/slowave.egg-info/entry_points.txt +3 -0
  56. slowave-0.1.3/slowave.egg-info/requires.txt +13 -0
  57. slowave-0.1.3/slowave.egg-info/top_level.txt +1 -0
slowave-0.1.3/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 mrsalty
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
slowave-0.1.3/PKG-INFO ADDED
@@ -0,0 +1,168 @@
1
+ Metadata-Version: 2.4
2
+ Name: slowave
3
+ Version: 0.1.3
4
+ Summary: Brain-inspired long-term memory for AI agents — zero LLM during ingest or retrieval
5
+ Author: mrsalty
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/mrsalty/slowave
8
+ Project-URL: Repository, https://github.com/mrsalty/slowave
9
+ Project-URL: Issues, https://github.com/mrsalty/slowave/issues
10
+ Project-URL: Changelog, https://github.com/mrsalty/slowave/releases
11
+ Keywords: memory,agent,ai,mcp,neuroscience,rag,llm
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: numpy
26
+ Requires-Dist: torch
27
+ Requires-Dist: faiss-cpu
28
+ Requires-Dist: click>=8.1
29
+ Requires-Dist: sentence-transformers
30
+ Requires-Dist: mcp[cli]
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest; extra == "dev"
33
+ Requires-Dist: black; extra == "dev"
34
+ Requires-Dist: isort; extra == "dev"
35
+ Requires-Dist: build; extra == "dev"
36
+ Requires-Dist: twine; extra == "dev"
37
+ Dynamic: license-file
38
+
39
+ # Slowave
40
+
41
+ **Brain-inspired long-term memory for AI agents and desktop AI chats.** Slowave plugs into Claude Code, Cline, and Claude Desktop through MCP, giving them a shared memory that accumulates, consolidates, adapts, and recalls across sessions.
42
+
43
+ Slowave's core thesis is simple: **language is not the memory system; language is one interface to it.** The memory engine works in latent space, the way brains appear to operate over distributed internal representations rather than over transcripts. Text is embedded once, then memory evolves through geometry, time, salience, replay, and activation. The default path uses **no LLM for ingest, consolidation, or recall**: inference is local, fast, CPU-friendly, private, and independent of any model provider.
44
+
45
+ Critical features:
46
+
47
+ - **No LLM in the core memory loop** — no API key, no cloud extraction step, no per-query model call.
48
+ - **Local CPU inference** — BAAI/bge-small-en-v1.5 embeddings, SQLite, FAISS, and deterministic geometry.
49
+ - **Brain-inspired consolidation** — raw events become episodes, episodes replay into prototypes, prototypes become latent schemas.
50
+ - **Recall changes memory** — retrieved memories are reinforced; recall is an active operation, not a passive database lookup.
51
+ - **Time-aware memory** — salience, decay, temporal anchors, supersession, and contradiction handling keep memory current.
52
+ - **Generic ingestion** — not code-assistant-specific; it can remember coding work, planning, preferences, decisions, chat context, or any text interaction.
53
+ - **Gated working memory** — `slowave_context` injects only a compact, cue-relevant memory brief instead of dumping history into the prompt.
54
+ - **Provenance and inspection** — schemas trace back to episodes/raw events; the local dashboard exposes memory health and recall behavior.
55
+
56
+ ## What Slowave is for
57
+
58
+ Slowave is a local long-term memory substrate for tools that otherwise forget between sessions. It is useful when you want an AI assistant to remember:
59
+
60
+ - project conventions and architectural decisions;
61
+ - personal preferences and communication style;
62
+ - recurring workflows and commands;
63
+ - previous debugging sessions and lessons learned;
64
+ - open questions, warnings, constraints, and artifacts;
65
+ - non-coding chat context from desktop AI conversations.
66
+
67
+ It is intentionally not just a RAG layer. Existing memory systems usually retrieve stored text or ask an LLM to rewrite memories. Slowave treats memory as a living system: sessions create episodes, replay distills patterns, time changes salience, contradiction updates beliefs, and recall itself reinforces what was useful.
68
+
69
+ ## Install in minutes
70
+
71
+ Slowave is a local memory service. Installing the package gives you two commands:
72
+
73
+ - `slowave`: CLI, dashboard, manual recall/debugging.
74
+ - `slowave-mcp`: MCP server used by Claude Desktop, Claude Code, and Cline.
75
+
76
+ ```bash
77
+ brew tap mrsalty/slowave
78
+ brew install slowave
79
+ ```
80
+
81
+ PyPI publishing is not enabled yet, so `pip install slowave` / `pipx install slowave` will not work until the package is published to PyPI. If you are not using Homebrew, install from source:
82
+
83
+ ```bash
84
+ git clone https://github.com/mrsalty/slowave
85
+ cd slowave
86
+ python3 -m venv .venv
87
+ source .venv/bin/activate
88
+ pip install -e .
89
+ ```
90
+
91
+ Verify:
92
+
93
+ ```bash
94
+ which slowave-mcp
95
+ slowave --help
96
+ slowave-mcp --help
97
+ slowave stats
98
+ ```
99
+
100
+ Then choose your client and follow the short guide:
101
+
102
+ | Client | Setup guide |
103
+ |---|---|
104
+ | Claude Desktop | [integrations/claude-desktop/](integrations/claude-desktop/) |
105
+ | Claude Code | [integrations/claude-code/](integrations/claude-code/) |
106
+ | Cline | [integrations/cline/](integrations/cline/) |
107
+
108
+ **Important:** MCP setup alone is not enough. Every client needs:
109
+
110
+ 1. MCP configuration so the `slowave_*` tools are visible.
111
+ 2. Instruction/rules injection so the client actually calls Slowave during the task.
112
+ 3. A background worker for ongoing consolidation into distilled schemas.
113
+
114
+ Episodes are created immediately when a session ends. The worker is what turns accumulated episodes into durable latent schemas for better future `slowave_context` injection.
115
+
116
+ The integration guides contain the exact MCP JSON, prompt/rules block, worker setup, and verification command for each client. Start at [integrations/](integrations/) if you are unsure.
117
+
118
+ Default storage: `~/.slowave/slowave.db`. No Ollama, OpenRouter, or other LLM backend is required for the default brain-only path.
119
+
120
+ ## Local dashboard
121
+
122
+ Run a local read-only web UI for memory inspection:
123
+
124
+ ```bash
125
+ slowave dashboard
126
+ # open http://127.0.0.1:8765
127
+ ```
128
+
129
+ The dashboard binds to `127.0.0.1` by default and shows DB health, Slowave/MCP processes, schemas, recall playground, and a schema graph.
130
+
131
+ ## CLI usage
132
+
133
+ The CLI is useful for debugging, manual memory writes, dashboard access, and benchmark/research workflows. It should not be the first path for most users; real agent memory needs MCP plus prompt/rules injection.
134
+
135
+ See [docs/cli.md](docs/cli.md) for the command list and a CLI-only quickstart.
136
+
137
+ ## Documentation
138
+
139
+ | | |
140
+ |---|---|
141
+ | [integrations/](integrations/) | Fast client-specific setup guides for Claude Desktop, Claude Code, and Cline |
142
+ | [docs/install.md](docs/install.md) | Install, MCP setup, prompt/rules injection, verification |
143
+ | [docs/agents.md](docs/agents.md) | MCP tool behavior and lifecycle for Claude Code, Cline, Claude Desktop |
144
+ | [docs/agent-enforcement.md](docs/agent-enforcement.md) | Copy/paste prompt templates that make clients call Slowave consistently |
145
+ | [docs/architecture.md](docs/architecture.md) | Brain-inspired mechanisms, data flow, storage, recall, consolidation |
146
+ | [docs/design.md](docs/design.md) | Why the LLM path was removed from the memory loop |
147
+ | [docs/dashboard.md](docs/dashboard.md) | Local dashboard guide |
148
+ | [docs/cli.md](docs/cli.md) | CLI quickstart and command reference |
149
+ | [docs/benchmarks.md](docs/benchmarks.md) | Reproduce benchmark numbers and ablations |
150
+ | [docs/release.md](docs/release.md) | Release workflow and versioning |
151
+ | [docs/stages/](docs/stages/) | Research history for each mechanism |
152
+
153
+ ## Benchmarks
154
+
155
+ Public retrieval/RAG-style benchmarks are useful regression tests, but they do not measure every Slowave feature. They mostly test fact recovery, not long-term accumulation, distillation, time-aware adaptation, or recall-driven memory reinforcement.
156
+
157
+ | Benchmark | Cosine RAG | **Slowave** | Δ | Mem0 SOTA |
158
+ |---|---:|---:|---:|---:|
159
+ | LongMemEval (500q) | 60.0% | **70.0%** | +10pp | 94.4% |
160
+ | LoCoMo (1986q) | 68.0% | **75.5%** | +7.5pp | 92.5% |
161
+
162
+ Brain-only path: **$0/query · ~10ms recall · no API · data stays on device.**
163
+
164
+ The gap to Mem0 is structurally about categories that reward LLM extraction/meta-cognition by construction, not just retrieval. See [docs/design.md](docs/design.md) and [docs/benchmarks.md](docs/benchmarks.md).
165
+
166
+ ## License
167
+
168
+ MIT.
@@ -0,0 +1,130 @@
1
+ # Slowave
2
+
3
+ **Brain-inspired long-term memory for AI agents and desktop AI chats.** Slowave plugs into Claude Code, Cline, and Claude Desktop through MCP, giving them a shared memory that accumulates, consolidates, adapts, and recalls across sessions.
4
+
5
+ Slowave's core thesis is simple: **language is not the memory system; language is one interface to it.** The memory engine works in latent space, the way brains appear to operate over distributed internal representations rather than over transcripts. Text is embedded once, then memory evolves through geometry, time, salience, replay, and activation. The default path uses **no LLM for ingest, consolidation, or recall**: inference is local, fast, CPU-friendly, private, and independent of any model provider.
6
+
7
+ Critical features:
8
+
9
+ - **No LLM in the core memory loop** — no API key, no cloud extraction step, no per-query model call.
10
+ - **Local CPU inference** — BAAI/bge-small-en-v1.5 embeddings, SQLite, FAISS, and deterministic geometry.
11
+ - **Brain-inspired consolidation** — raw events become episodes, episodes replay into prototypes, prototypes become latent schemas.
12
+ - **Recall changes memory** — retrieved memories are reinforced; recall is an active operation, not a passive database lookup.
13
+ - **Time-aware memory** — salience, decay, temporal anchors, supersession, and contradiction handling keep memory current.
14
+ - **Generic ingestion** — not code-assistant-specific; it can remember coding work, planning, preferences, decisions, chat context, or any text interaction.
15
+ - **Gated working memory** — `slowave_context` injects only a compact, cue-relevant memory brief instead of dumping history into the prompt.
16
+ - **Provenance and inspection** — schemas trace back to episodes/raw events; the local dashboard exposes memory health and recall behavior.
17
+
18
+ ## What Slowave is for
19
+
20
+ Slowave is a local long-term memory substrate for tools that otherwise forget between sessions. It is useful when you want an AI assistant to remember:
21
+
22
+ - project conventions and architectural decisions;
23
+ - personal preferences and communication style;
24
+ - recurring workflows and commands;
25
+ - previous debugging sessions and lessons learned;
26
+ - open questions, warnings, constraints, and artifacts;
27
+ - non-coding chat context from desktop AI conversations.
28
+
29
+ It is intentionally not just a RAG layer. Existing memory systems usually retrieve stored text or ask an LLM to rewrite memories. Slowave treats memory as a living system: sessions create episodes, replay distills patterns, time changes salience, contradiction updates beliefs, and recall itself reinforces what was useful.
30
+
31
+ ## Install in minutes
32
+
33
+ Slowave is a local memory service. Installing the package gives you two commands:
34
+
35
+ - `slowave`: CLI, dashboard, manual recall/debugging.
36
+ - `slowave-mcp`: MCP server used by Claude Desktop, Claude Code, and Cline.
37
+
38
+ ```bash
39
+ brew tap mrsalty/slowave
40
+ brew install slowave
41
+ ```
42
+
43
+ PyPI publishing is not enabled yet, so `pip install slowave` / `pipx install slowave` will not work until the package is published to PyPI. If you are not using Homebrew, install from source:
44
+
45
+ ```bash
46
+ git clone https://github.com/mrsalty/slowave
47
+ cd slowave
48
+ python3 -m venv .venv
49
+ source .venv/bin/activate
50
+ pip install -e .
51
+ ```
52
+
53
+ Verify:
54
+
55
+ ```bash
56
+ which slowave-mcp
57
+ slowave --help
58
+ slowave-mcp --help
59
+ slowave stats
60
+ ```
61
+
62
+ Then choose your client and follow the short guide:
63
+
64
+ | Client | Setup guide |
65
+ |---|---|
66
+ | Claude Desktop | [integrations/claude-desktop/](integrations/claude-desktop/) |
67
+ | Claude Code | [integrations/claude-code/](integrations/claude-code/) |
68
+ | Cline | [integrations/cline/](integrations/cline/) |
69
+
70
+ **Important:** MCP setup alone is not enough. Every client needs:
71
+
72
+ 1. MCP configuration so the `slowave_*` tools are visible.
73
+ 2. Instruction/rules injection so the client actually calls Slowave during the task.
74
+ 3. A background worker for ongoing consolidation into distilled schemas.
75
+
76
+ Episodes are created immediately when a session ends. The worker is what turns accumulated episodes into durable latent schemas for better future `slowave_context` injection.
77
+
78
+ The integration guides contain the exact MCP JSON, prompt/rules block, worker setup, and verification command for each client. Start at [integrations/](integrations/) if you are unsure.
79
+
80
+ Default storage: `~/.slowave/slowave.db`. No Ollama, OpenRouter, or other LLM backend is required for the default brain-only path.
81
+
82
+ ## Local dashboard
83
+
84
+ Run a local read-only web UI for memory inspection:
85
+
86
+ ```bash
87
+ slowave dashboard
88
+ # open http://127.0.0.1:8765
89
+ ```
90
+
91
+ The dashboard binds to `127.0.0.1` by default and shows DB health, Slowave/MCP processes, schemas, recall playground, and a schema graph.
92
+
93
+ ## CLI usage
94
+
95
+ The CLI is useful for debugging, manual memory writes, dashboard access, and benchmark/research workflows. It should not be the first path for most users; real agent memory needs MCP plus prompt/rules injection.
96
+
97
+ See [docs/cli.md](docs/cli.md) for the command list and a CLI-only quickstart.
98
+
99
+ ## Documentation
100
+
101
+ | | |
102
+ |---|---|
103
+ | [integrations/](integrations/) | Fast client-specific setup guides for Claude Desktop, Claude Code, and Cline |
104
+ | [docs/install.md](docs/install.md) | Install, MCP setup, prompt/rules injection, verification |
105
+ | [docs/agents.md](docs/agents.md) | MCP tool behavior and lifecycle for Claude Code, Cline, Claude Desktop |
106
+ | [docs/agent-enforcement.md](docs/agent-enforcement.md) | Copy/paste prompt templates that make clients call Slowave consistently |
107
+ | [docs/architecture.md](docs/architecture.md) | Brain-inspired mechanisms, data flow, storage, recall, consolidation |
108
+ | [docs/design.md](docs/design.md) | Why the LLM path was removed from the memory loop |
109
+ | [docs/dashboard.md](docs/dashboard.md) | Local dashboard guide |
110
+ | [docs/cli.md](docs/cli.md) | CLI quickstart and command reference |
111
+ | [docs/benchmarks.md](docs/benchmarks.md) | Reproduce benchmark numbers and ablations |
112
+ | [docs/release.md](docs/release.md) | Release workflow and versioning |
113
+ | [docs/stages/](docs/stages/) | Research history for each mechanism |
114
+
115
+ ## Benchmarks
116
+
117
+ Public retrieval/RAG-style benchmarks are useful regression tests, but they do not measure every Slowave feature. They mostly test fact recovery, not long-term accumulation, distillation, time-aware adaptation, or recall-driven memory reinforcement.
118
+
119
+ | Benchmark | Cosine RAG | **Slowave** | Δ | Mem0 SOTA |
120
+ |---|---:|---:|---:|---:|
121
+ | LongMemEval (500q) | 60.0% | **70.0%** | +10pp | 94.4% |
122
+ | LoCoMo (1986q) | 68.0% | **75.5%** | +7.5pp | 92.5% |
123
+
124
+ Brain-only path: **$0/query · ~10ms recall · no API · data stays on device.**
125
+
126
+ The gap to Mem0 is structurally about categories that reward LLM extraction/meta-cognition by construction, not just retrieval. See [docs/design.md](docs/design.md) and [docs/benchmarks.md](docs/benchmarks.md).
127
+
128
+ ## License
129
+
130
+ MIT.
@@ -0,0 +1,60 @@
1
+ [build-system]
2
+ requires = ["setuptools>=69", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "slowave"
7
+ version = "0.1.3"
8
+ description = "Brain-inspired long-term memory for AI agents — zero LLM during ingest or retrieval"
9
+ requires-python = ">=3.10"
10
+ license = { text = "MIT" }
11
+ readme = "README.md"
12
+ authors = [{ name = "mrsalty" }]
13
+ keywords = ["memory", "agent", "ai", "mcp", "neuroscience", "rag", "llm"]
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Developers",
17
+ "Intended Audience :: Science/Research",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
24
+ "Topic :: Software Development :: Libraries :: Python Modules",
25
+ ]
26
+ dependencies = [
27
+ "numpy",
28
+ "torch",
29
+ "faiss-cpu",
30
+ "click>=8.1",
31
+ "sentence-transformers",
32
+ "mcp[cli]",
33
+ ]
34
+
35
+ [project.urls]
36
+ Homepage = "https://github.com/mrsalty/slowave"
37
+ Repository = "https://github.com/mrsalty/slowave"
38
+ Issues = "https://github.com/mrsalty/slowave/issues"
39
+ Changelog = "https://github.com/mrsalty/slowave/releases"
40
+
41
+ [project.optional-dependencies]
42
+ dev = ["pytest", "black", "isort", "build", "twine"]
43
+
44
+ [project.scripts]
45
+ slowave = "slowave.cli.main:main"
46
+ slowave-mcp = "slowave.mcp.server:main"
47
+
48
+ [tool.setuptools.packages.find]
49
+ include = ["slowave*"]
50
+ exclude = ["tests*", "migrations*", "scripts*"]
51
+
52
+ [tool.setuptools.package-data]
53
+ slowave = ["storage/schema.sql", "llm/prompts/*.txt"]
54
+
55
+ [tool.black]
56
+ line-length = 100
57
+
58
+ [tool.isort]
59
+ profile = "black"
60
+ line_length = 100
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,10 @@
1
+ """Slowave: brain-inspired memory for AI agents.
2
+
3
+ Public API entry points are in `slowave.core.engine.SlowaveEngine` and
4
+ `slowave.core.config.SlowaveConfig`.
5
+ """
6
+ from slowave.core.config import SlowaveConfig
7
+ from slowave.core.engine import SlowaveEngine
8
+
9
+ __all__ = ["SlowaveEngine", "SlowaveConfig"]
10
+ __version__ = "0.1.3"
@@ -0,0 +1,13 @@
1
+ """`python -m slowave` dispatches to the Click CLI."""
2
+ import os
3
+
4
+ # macOS note: FAISS + PyTorch can sometimes load multiple OpenMP runtimes.
5
+ # Pragmatic workaround to avoid a hard crash.
6
+ os.environ.setdefault("KMP_DUPLICATE_LIB_OK", "TRUE")
7
+ os.environ.setdefault("OMP_NUM_THREADS", "1")
8
+ os.environ.setdefault("TOKENIZERS_PARALLELISM", "false")
9
+
10
+ from slowave.cli.main import main
11
+
12
+ if __name__ == "__main__":
13
+ main()
File without changes