wavemind 2.0.4__tar.gz → 2.1.0__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.
- wavemind-2.1.0/CONTRIBUTING.md +107 -0
- wavemind-2.1.0/Dockerfile +23 -0
- wavemind-2.1.0/MANIFEST.in +20 -0
- wavemind-2.1.0/PKG-INFO +1160 -0
- wavemind-2.1.0/README.md +1110 -0
- wavemind-2.1.0/SECURITY.md +38 -0
- wavemind-2.1.0/SUPPORT.md +15 -0
- wavemind-2.1.0/benchmarks/BENCHMARK_REPORT.md +46 -0
- wavemind-2.1.0/benchmarks/agent_memory_benchmark.py +339 -0
- wavemind-2.1.0/benchmarks/agent_memory_results.json +33 -0
- wavemind-2.1.0/benchmarks/ann_index_curve_benchmark.py +333 -0
- wavemind-2.1.0/benchmarks/ann_index_curve_results.json +203 -0
- wavemind-2.1.0/benchmarks/benchmark_matrix_results.json +659 -0
- wavemind-2.1.0/benchmarks/benchmark_registry.py +617 -0
- wavemind-2.1.0/benchmarks/dynamic_memory_benchmark.py +509 -0
- wavemind-2.1.0/benchmarks/dynamic_memory_results.json +52 -0
- wavemind-2.1.0/benchmarks/field_memory_dynamics_benchmark.py +226 -0
- wavemind-2.1.0/benchmarks/field_memory_dynamics_results.json +20 -0
- wavemind-2.1.0/benchmarks/locomo_evidence_results.json +101 -0
- wavemind-2.1.0/benchmarks/locomo_memory_benchmark.py +337 -0
- wavemind-2.1.0/benchmarks/locomo_sentence_evidence_results.json +101 -0
- wavemind-2.1.0/benchmarks/long_memory_evidence_benchmark.py +409 -0
- wavemind-2.1.0/benchmarks/long_memory_evidence_results.json +58 -0
- wavemind-2.1.0/benchmarks/longmemeval_answer_benchmark.py +351 -0
- wavemind-2.1.0/benchmarks/longmemeval_answer_extractive_20_results.json +97 -0
- wavemind-2.1.0/benchmarks/longmemeval_evidence_50_results.json +86 -0
- wavemind-2.1.0/benchmarks/longmemeval_evidence_results.json +106 -0
- wavemind-2.1.0/benchmarks/longmemeval_memory_benchmark.py +350 -0
- wavemind-2.1.0/benchmarks/open_retrieval_benchmark.py +284 -0
- wavemind-2.1.0/benchmarks/open_retrieval_scifact_results.json +48 -0
- wavemind-2.1.0/benchmarks/render_benchmark_charts.py +247 -0
- wavemind-2.1.0/benchmarks/render_benchmark_report.py +159 -0
- wavemind-2.1.0/benchmarks/ru_sentences_benchmark.py +180 -0
- wavemind-2.1.0/benchmarks/wavemind_capacity_results.json +64 -0
- wavemind-2.1.0/docker-compose.yml +19 -0
- wavemind-2.1.0/docs/PROJECT_BOARD.md +40 -0
- wavemind-2.1.0/docs/RELEASE.md +54 -0
- wavemind-2.1.0/docs/ROADMAP.md +250 -0
- wavemind-2.1.0/docs/assets/benchmark-summary.svg +198 -0
- wavemind-2.1.0/examples/agent_with_memory.py +112 -0
- wavemind-2.1.0/examples/demo.py +47 -0
- wavemind-2.1.0/examples/framework_integrations.py +122 -0
- wavemind-2.1.0/examples/langchain_memory.py +30 -0
- wavemind-2.1.0/examples/sharded_memory.py +43 -0
- wavemind-2.1.0/install.bat +7 -0
- wavemind-2.1.0/install.sh +7 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/pyproject.toml +23 -2
- wavemind-2.1.0/requirements-optional.txt +5 -0
- wavemind-2.1.0/requirements.txt +5 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/tests/test_agent_memory_benchmark.py +37 -0
- wavemind-2.1.0/tests/test_ann_index_curve_benchmark.py +145 -0
- wavemind-2.1.0/tests/test_api.py +221 -0
- wavemind-2.1.0/tests/test_benchmark_charts.py +38 -0
- wavemind-2.1.0/tests/test_benchmark_registry.py +60 -0
- wavemind-2.1.0/tests/test_benchmark_report.py +31 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/tests/test_cli_smoke.py +47 -0
- wavemind-2.1.0/tests/test_core_persistence.py +168 -0
- wavemind-2.1.0/tests/test_dynamic_memory_benchmark.py +88 -0
- wavemind-2.1.0/tests/test_examples.py +110 -0
- wavemind-2.1.0/tests/test_field_graph.py +95 -0
- wavemind-2.1.0/tests/test_field_graph_integration.py +82 -0
- wavemind-2.1.0/tests/test_field_memory_dynamics_benchmark.py +21 -0
- wavemind-2.1.0/tests/test_framework_adapters.py +83 -0
- wavemind-2.1.0/tests/test_indexes_encoders.py +491 -0
- wavemind-2.1.0/tests/test_locomo_memory_benchmark.py +116 -0
- wavemind-2.1.0/tests/test_long_memory_evidence_benchmark.py +171 -0
- wavemind-2.1.0/tests/test_longmemeval_answer_benchmark.py +79 -0
- wavemind-2.1.0/tests/test_longmemeval_memory_benchmark.py +97 -0
- wavemind-2.1.0/tests/test_observability.py +61 -0
- wavemind-2.1.0/tests/test_open_retrieval_benchmark.py +118 -0
- wavemind-2.1.0/tests/test_packaging_files.py +137 -0
- wavemind-2.1.0/tests/test_postgres_storage.py +267 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/tests/test_semantic_and_latency.py +49 -0
- wavemind-2.1.0/tests/test_sharding.py +77 -0
- wavemind-2.1.0/wavemind/__init__.py +44 -0
- wavemind-2.1.0/wavemind/api.py +406 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind/cli.py +78 -2
- wavemind-2.1.0/wavemind/core.py +725 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind/encoders.py +171 -4
- wavemind-2.1.0/wavemind/field_graph.py +259 -0
- wavemind-2.1.0/wavemind/indexes.py +835 -0
- wavemind-2.1.0/wavemind/integrations/__init__.py +15 -0
- wavemind-2.1.0/wavemind/integrations/autogen.py +59 -0
- wavemind-2.1.0/wavemind/integrations/crewai.py +77 -0
- wavemind-2.1.0/wavemind/integrations/langgraph.py +58 -0
- wavemind-2.1.0/wavemind/integrations/llamaindex.py +65 -0
- wavemind-2.1.0/wavemind/observability.py +147 -0
- wavemind-2.1.0/wavemind/sharding.py +126 -0
- wavemind-2.1.0/wavemind/storage.py +767 -0
- wavemind-2.1.0/wavemind.egg-info/PKG-INFO +1160 -0
- wavemind-2.1.0/wavemind.egg-info/SOURCES.txt +102 -0
- wavemind-2.1.0/wavemind.egg-info/requires.txt +51 -0
- wavemind-2.0.4/PKG-INFO +0 -258
- wavemind-2.0.4/README.md +0 -226
- wavemind-2.0.4/tests/test_api.py +0 -91
- wavemind-2.0.4/tests/test_core_persistence.py +0 -73
- wavemind-2.0.4/tests/test_examples.py +0 -53
- wavemind-2.0.4/tests/test_indexes_encoders.py +0 -92
- wavemind-2.0.4/tests/test_packaging_files.py +0 -67
- wavemind-2.0.4/wavemind/__init__.py +0 -25
- wavemind-2.0.4/wavemind/api.py +0 -178
- wavemind-2.0.4/wavemind/core.py +0 -428
- wavemind-2.0.4/wavemind/indexes.py +0 -214
- wavemind-2.0.4/wavemind/integrations/__init__.py +0 -2
- wavemind-2.0.4/wavemind/storage.py +0 -222
- wavemind-2.0.4/wavemind.egg-info/PKG-INFO +0 -258
- wavemind-2.0.4/wavemind.egg-info/SOURCES.txt +0 -32
- wavemind-2.0.4/wavemind.egg-info/requires.txt +0 -28
- {wavemind-2.0.4 → wavemind-2.1.0}/LICENSE +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/setup.cfg +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/tests/test_api_process_persistence.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/tests/test_import_benchmark.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/tests/test_langchain_integration.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind/__main__.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind/benchmark.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind/importers.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind/integrations/langchain.py +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind.egg-info/dependency_links.txt +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind.egg-info/entry_points.txt +0 -0
- {wavemind-2.0.4 → wavemind-2.1.0}/wavemind.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Contributing To WaveMind
|
|
2
|
+
|
|
3
|
+
WaveMind is an early dynamic-memory engine. Contributions are welcome, but the
|
|
4
|
+
project has one strict rule: benchmark and production claims must be
|
|
5
|
+
reproducible.
|
|
6
|
+
|
|
7
|
+
## Local Setup
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
git clone https://github.com/CaspianG/wavemind.git
|
|
11
|
+
cd wavemind
|
|
12
|
+
python -m pip install -e ".[dev]"
|
|
13
|
+
pytest -q
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Optional extras:
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
python -m pip install -e ".[sentence,bench,indexes,postgres]"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Notes:
|
|
23
|
+
|
|
24
|
+
- `faiss-cpu` is not installed by the `indexes` extra on Windows because the
|
|
25
|
+
package is not consistently available there.
|
|
26
|
+
- `postgres` installs `psycopg`; it still requires a running PostgreSQL
|
|
27
|
+
database with the pgvector extension available.
|
|
28
|
+
- Benchmark dependencies such as Chroma and Qdrant are intentionally optional.
|
|
29
|
+
- Public datasets are not downloaded by default.
|
|
30
|
+
|
|
31
|
+
## Good First Areas
|
|
32
|
+
|
|
33
|
+
- Documentation examples for real applications and frameworks.
|
|
34
|
+
- Benchmark adapters that produce checked-in JSON output.
|
|
35
|
+
- Small tests around TTL, namespaces, corrections, and graph behavior.
|
|
36
|
+
- Production hardening around auth, rate limits, metrics, backups, and sharding.
|
|
37
|
+
- Import/export tools.
|
|
38
|
+
- CLI and FastAPI ergonomics.
|
|
39
|
+
|
|
40
|
+
## Benchmark Rules
|
|
41
|
+
|
|
42
|
+
Do not add a README claim unless it has:
|
|
43
|
+
|
|
44
|
+
- a reproducible command;
|
|
45
|
+
- a checked-in JSON result under `benchmarks/`;
|
|
46
|
+
- the dataset name and size;
|
|
47
|
+
- the encoder used;
|
|
48
|
+
- the compared engines;
|
|
49
|
+
- latency and quality metrics;
|
|
50
|
+
- a limitation note when the result is retrieval-only, synthetic, local-mode, or
|
|
51
|
+
not leaderboard-equivalent.
|
|
52
|
+
|
|
53
|
+
It is acceptable to add planned benchmark rows, but they must be marked as
|
|
54
|
+
planned and must not be phrased as wins.
|
|
55
|
+
|
|
56
|
+
## Development Checks
|
|
57
|
+
|
|
58
|
+
Before opening a PR, run:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
pytest -q
|
|
62
|
+
python -m build
|
|
63
|
+
python -m twine check dist/*
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
On Windows PowerShell:
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
pytest -q
|
|
70
|
+
python -m build
|
|
71
|
+
python -m twine check dist\*
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Architecture Direction
|
|
75
|
+
|
|
76
|
+
WaveMind should stay local-first by default:
|
|
77
|
+
|
|
78
|
+
- SQLite remains the default source of truth.
|
|
79
|
+
- Vector indexes generate candidates.
|
|
80
|
+
- WaveMind applies memory-specific reranking on the candidate window.
|
|
81
|
+
- No backend should silently replace another backend. If an optional dependency
|
|
82
|
+
is missing, raise a clear error or mark the benchmark row as skipped.
|
|
83
|
+
|
|
84
|
+
Current scale roadmap:
|
|
85
|
+
|
|
86
|
+
- FAISS candidate index.
|
|
87
|
+
- Postgres + pgvector prototype.
|
|
88
|
+
- Service-mode Qdrant benchmark.
|
|
89
|
+
- Faster dynamic reranking.
|
|
90
|
+
- Background jobs for decay, consolidation, graph updates, and backups.
|
|
91
|
+
- Observability through metrics, traces, and audit logs.
|
|
92
|
+
|
|
93
|
+
See [`docs/ROADMAP.md`](docs/ROADMAP.md) for the full roadmap.
|
|
94
|
+
See [`docs/RELEASE.md`](docs/RELEASE.md) for release mechanics.
|
|
95
|
+
|
|
96
|
+
## Pull Request Style
|
|
97
|
+
|
|
98
|
+
Keep PRs focused. A good PR usually changes one of:
|
|
99
|
+
|
|
100
|
+
- one backend;
|
|
101
|
+
- one benchmark;
|
|
102
|
+
- one integration;
|
|
103
|
+
- one documentation section;
|
|
104
|
+
- one bug fix with tests.
|
|
105
|
+
|
|
106
|
+
If a change affects benchmark numbers, update both the result JSON and the
|
|
107
|
+
README/report text that cites it.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
FROM python:3.11-slim
|
|
2
|
+
|
|
3
|
+
ARG INSTALL_OPTIONAL=false
|
|
4
|
+
|
|
5
|
+
ENV PYTHONDONTWRITEBYTECODE=1
|
|
6
|
+
ENV PYTHONUNBUFFERED=1
|
|
7
|
+
ENV WAVEMIND_DB=/data/wavemind.sqlite3
|
|
8
|
+
ENV WAVEMIND_LOG_LEVEL=INFO
|
|
9
|
+
|
|
10
|
+
WORKDIR /app
|
|
11
|
+
|
|
12
|
+
COPY README.md pyproject.toml requirements.txt requirements-optional.txt ./
|
|
13
|
+
RUN pip install --no-cache-dir -r requirements.txt \
|
|
14
|
+
&& if [ "$INSTALL_OPTIONAL" = "true" ]; then pip install --no-cache-dir -r requirements-optional.txt; fi
|
|
15
|
+
|
|
16
|
+
COPY wavemind ./wavemind
|
|
17
|
+
COPY wavemind_v2.py ./wavemind_v2.py
|
|
18
|
+
RUN pip install --no-cache-dir -e .
|
|
19
|
+
|
|
20
|
+
VOLUME ["/data", "/backups"]
|
|
21
|
+
EXPOSE 8000
|
|
22
|
+
|
|
23
|
+
CMD ["uvicorn", "wavemind.api:create_app", "--factory", "--host", "0.0.0.0", "--port", "8000"]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include CONTRIBUTING.md
|
|
4
|
+
include SECURITY.md
|
|
5
|
+
include SUPPORT.md
|
|
6
|
+
include install.sh
|
|
7
|
+
include install.bat
|
|
8
|
+
include Dockerfile
|
|
9
|
+
include docker-compose.yml
|
|
10
|
+
include requirements.txt
|
|
11
|
+
include requirements-optional.txt
|
|
12
|
+
include docs/ROADMAP.md
|
|
13
|
+
include docs/RELEASE.md
|
|
14
|
+
include docs/PROJECT_BOARD.md
|
|
15
|
+
include docs/assets/benchmark-summary.svg
|
|
16
|
+
include benchmarks/*.py
|
|
17
|
+
include benchmarks/*.json
|
|
18
|
+
include benchmarks/*.md
|
|
19
|
+
include examples/*.py
|
|
20
|
+
prune benchmarks/data
|