wavemind 2.0.5__tar.gz → 2.1.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.
Files changed (128) hide show
  1. wavemind-2.1.1/CONTRIBUTING.md +109 -0
  2. wavemind-2.1.1/Dockerfile +23 -0
  3. wavemind-2.1.1/MANIFEST.in +26 -0
  4. wavemind-2.1.1/PKG-INFO +1273 -0
  5. wavemind-2.1.1/README.md +1223 -0
  6. wavemind-2.1.1/SECURITY.md +38 -0
  7. wavemind-2.1.1/SUPPORT.md +15 -0
  8. wavemind-2.1.1/benchmarks/BENCHMARK_REPORT.md +46 -0
  9. wavemind-2.1.1/benchmarks/agent_memory_benchmark.py +339 -0
  10. wavemind-2.1.1/benchmarks/agent_memory_results.json +33 -0
  11. wavemind-2.1.1/benchmarks/ann_index_curve_benchmark.py +336 -0
  12. wavemind-2.1.1/benchmarks/ann_index_curve_results.json +203 -0
  13. wavemind-2.1.1/benchmarks/benchmark_matrix_results.json +659 -0
  14. wavemind-2.1.1/benchmarks/benchmark_registry.py +617 -0
  15. wavemind-2.1.1/benchmarks/dynamic_memory_benchmark.py +509 -0
  16. wavemind-2.1.1/benchmarks/dynamic_memory_results.json +52 -0
  17. wavemind-2.1.1/benchmarks/field_memory_dynamics_benchmark.py +226 -0
  18. wavemind-2.1.1/benchmarks/field_memory_dynamics_results.json +20 -0
  19. wavemind-2.1.1/benchmarks/locomo_evidence_results.json +101 -0
  20. wavemind-2.1.1/benchmarks/locomo_memory_benchmark.py +337 -0
  21. wavemind-2.1.1/benchmarks/locomo_sentence_evidence_results.json +101 -0
  22. wavemind-2.1.1/benchmarks/long_memory_evidence_benchmark.py +409 -0
  23. wavemind-2.1.1/benchmarks/long_memory_evidence_results.json +58 -0
  24. wavemind-2.1.1/benchmarks/longmemeval_answer_benchmark.py +351 -0
  25. wavemind-2.1.1/benchmarks/longmemeval_answer_extractive_20_results.json +97 -0
  26. wavemind-2.1.1/benchmarks/longmemeval_evidence_50_results.json +86 -0
  27. wavemind-2.1.1/benchmarks/longmemeval_evidence_results.json +106 -0
  28. wavemind-2.1.1/benchmarks/longmemeval_memory_benchmark.py +350 -0
  29. wavemind-2.1.1/benchmarks/open_retrieval_benchmark.py +284 -0
  30. wavemind-2.1.1/benchmarks/open_retrieval_scifact_results.json +48 -0
  31. wavemind-2.1.1/benchmarks/render_benchmark_charts.py +247 -0
  32. wavemind-2.1.1/benchmarks/render_benchmark_report.py +159 -0
  33. wavemind-2.1.1/benchmarks/ru_sentences_benchmark.py +180 -0
  34. wavemind-2.1.1/benchmarks/wavemind_capacity_results.json +64 -0
  35. wavemind-2.1.1/docker-compose.yml +19 -0
  36. wavemind-2.1.1/docs/CHROMA_MIGRATION.md +412 -0
  37. wavemind-2.1.1/docs/DEMO_SCRIPT.md +116 -0
  38. wavemind-2.1.1/docs/LAUNCH_KIT.md +361 -0
  39. wavemind-2.1.1/docs/PROJECT_BOARD.md +45 -0
  40. wavemind-2.1.1/docs/RELEASE.md +54 -0
  41. wavemind-2.1.1/docs/ROADMAP.md +252 -0
  42. wavemind-2.1.1/docs/RU_LAUNCH_POSTS.md +192 -0
  43. wavemind-2.1.1/docs/USE_CASES.md +274 -0
  44. wavemind-2.1.1/docs/assets/benchmark-summary.svg +198 -0
  45. wavemind-2.1.1/docs/assets/wavemind-social-card.svg +104 -0
  46. wavemind-2.1.1/examples/agent_with_memory.py +112 -0
  47. wavemind-2.1.1/examples/demo.py +47 -0
  48. wavemind-2.1.1/examples/dynamic_memory_demo.py +134 -0
  49. wavemind-2.1.1/examples/framework_integrations.py +122 -0
  50. wavemind-2.1.1/examples/langchain_memory.py +30 -0
  51. wavemind-2.1.1/examples/sharded_memory.py +43 -0
  52. wavemind-2.1.1/install.bat +7 -0
  53. wavemind-2.1.1/install.sh +7 -0
  54. {wavemind-2.0.5 → wavemind-2.1.1}/pyproject.toml +23 -2
  55. wavemind-2.1.1/requirements-optional.txt +5 -0
  56. wavemind-2.1.1/requirements.txt +5 -0
  57. {wavemind-2.0.5 → wavemind-2.1.1}/tests/test_agent_memory_benchmark.py +37 -0
  58. wavemind-2.1.1/tests/test_ann_index_curve_benchmark.py +145 -0
  59. wavemind-2.1.1/tests/test_api.py +235 -0
  60. wavemind-2.1.1/tests/test_benchmark_charts.py +38 -0
  61. wavemind-2.1.1/tests/test_benchmark_registry.py +60 -0
  62. wavemind-2.1.1/tests/test_benchmark_report.py +31 -0
  63. wavemind-2.1.1/tests/test_cli_smoke.py +153 -0
  64. wavemind-2.1.1/tests/test_core_persistence.py +194 -0
  65. wavemind-2.1.1/tests/test_examples.py +132 -0
  66. wavemind-2.1.1/tests/test_field_graph.py +95 -0
  67. wavemind-2.1.1/tests/test_field_graph_integration.py +82 -0
  68. wavemind-2.1.1/tests/test_field_memory_dynamics_benchmark.py +21 -0
  69. wavemind-2.1.1/tests/test_framework_adapters.py +83 -0
  70. wavemind-2.1.1/tests/test_indexes_encoders.py +508 -0
  71. wavemind-2.1.1/tests/test_locomo_memory_benchmark.py +116 -0
  72. wavemind-2.1.1/tests/test_long_memory_evidence_benchmark.py +171 -0
  73. wavemind-2.1.1/tests/test_longmemeval_answer_benchmark.py +79 -0
  74. wavemind-2.1.1/tests/test_longmemeval_memory_benchmark.py +97 -0
  75. wavemind-2.1.1/tests/test_observability.py +61 -0
  76. wavemind-2.1.1/tests/test_open_retrieval_benchmark.py +118 -0
  77. wavemind-2.1.1/tests/test_packaging_files.py +144 -0
  78. wavemind-2.1.1/tests/test_postgres_storage.py +267 -0
  79. {wavemind-2.0.5 → wavemind-2.1.1}/tests/test_semantic_and_latency.py +25 -0
  80. wavemind-2.1.1/tests/test_sharding.py +77 -0
  81. wavemind-2.1.1/wavemind/__init__.py +44 -0
  82. wavemind-2.1.1/wavemind/api.py +419 -0
  83. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind/cli.py +150 -2
  84. wavemind-2.1.1/wavemind/core.py +787 -0
  85. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind/encoders.py +171 -4
  86. wavemind-2.1.1/wavemind/field_graph.py +259 -0
  87. wavemind-2.1.1/wavemind/indexes.py +1034 -0
  88. wavemind-2.1.1/wavemind/integrations/__init__.py +15 -0
  89. wavemind-2.1.1/wavemind/integrations/autogen.py +59 -0
  90. wavemind-2.1.1/wavemind/integrations/crewai.py +77 -0
  91. wavemind-2.1.1/wavemind/integrations/langgraph.py +58 -0
  92. wavemind-2.1.1/wavemind/integrations/llamaindex.py +65 -0
  93. wavemind-2.1.1/wavemind/observability.py +147 -0
  94. wavemind-2.1.1/wavemind/sharding.py +126 -0
  95. wavemind-2.1.1/wavemind/storage.py +767 -0
  96. wavemind-2.1.1/wavemind.egg-info/PKG-INFO +1273 -0
  97. wavemind-2.1.1/wavemind.egg-info/SOURCES.txt +109 -0
  98. wavemind-2.1.1/wavemind.egg-info/requires.txt +51 -0
  99. wavemind-2.0.5/PKG-INFO +0 -287
  100. wavemind-2.0.5/README.md +0 -255
  101. wavemind-2.0.5/tests/test_api.py +0 -91
  102. wavemind-2.0.5/tests/test_cli_smoke.py +0 -77
  103. wavemind-2.0.5/tests/test_core_persistence.py +0 -73
  104. wavemind-2.0.5/tests/test_examples.py +0 -53
  105. wavemind-2.0.5/tests/test_indexes_encoders.py +0 -92
  106. wavemind-2.0.5/tests/test_packaging_files.py +0 -76
  107. wavemind-2.0.5/wavemind/__init__.py +0 -25
  108. wavemind-2.0.5/wavemind/api.py +0 -178
  109. wavemind-2.0.5/wavemind/core.py +0 -455
  110. wavemind-2.0.5/wavemind/indexes.py +0 -214
  111. wavemind-2.0.5/wavemind/integrations/__init__.py +0 -2
  112. wavemind-2.0.5/wavemind/storage.py +0 -222
  113. wavemind-2.0.5/wavemind.egg-info/PKG-INFO +0 -287
  114. wavemind-2.0.5/wavemind.egg-info/SOURCES.txt +0 -33
  115. wavemind-2.0.5/wavemind.egg-info/requires.txt +0 -28
  116. {wavemind-2.0.5 → wavemind-2.1.1}/LICENSE +0 -0
  117. {wavemind-2.0.5 → wavemind-2.1.1}/setup.cfg +0 -0
  118. {wavemind-2.0.5 → wavemind-2.1.1}/tests/test_api_process_persistence.py +0 -0
  119. {wavemind-2.0.5 → wavemind-2.1.1}/tests/test_dynamic_memory_benchmark.py +0 -0
  120. {wavemind-2.0.5 → wavemind-2.1.1}/tests/test_import_benchmark.py +0 -0
  121. {wavemind-2.0.5 → wavemind-2.1.1}/tests/test_langchain_integration.py +0 -0
  122. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind/__main__.py +0 -0
  123. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind/benchmark.py +0 -0
  124. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind/importers.py +0 -0
  125. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind/integrations/langchain.py +0 -0
  126. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind.egg-info/dependency_links.txt +0 -0
  127. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind.egg-info/entry_points.txt +0 -0
  128. {wavemind-2.0.5 → wavemind-2.1.1}/wavemind.egg-info/top_level.txt +0 -0
@@ -0,0 +1,109 @@
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
+ See [`docs/LAUNCH_KIT.md`](docs/LAUNCH_KIT.md) for public positioning,
96
+ benchmark-claim guardrails, and community launch drafts.
97
+
98
+ ## Pull Request Style
99
+
100
+ Keep PRs focused. A good PR usually changes one of:
101
+
102
+ - one backend;
103
+ - one benchmark;
104
+ - one integration;
105
+ - one documentation section;
106
+ - one bug fix with tests.
107
+
108
+ If a change affects benchmark numbers, update both the result JSON and the
109
+ 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,26 @@
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/DEMO_SCRIPT.md
16
+ include docs/LAUNCH_KIT.md
17
+ include docs/CHROMA_MIGRATION.md
18
+ include docs/RU_LAUNCH_POSTS.md
19
+ include docs/USE_CASES.md
20
+ include docs/assets/benchmark-summary.svg
21
+ include docs/assets/wavemind-social-card.svg
22
+ include benchmarks/*.py
23
+ include benchmarks/*.json
24
+ include benchmarks/*.md
25
+ include examples/*.py
26
+ prune benchmarks/data