spatial-memory-mcp 1.0.3__py3-none-any.whl → 1.6.0__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.

Potentially problematic release.


This version of spatial-memory-mcp might be problematic. Click here for more details.

Files changed (39) hide show
  1. spatial_memory/__init__.py +97 -97
  2. spatial_memory/__main__.py +241 -2
  3. spatial_memory/adapters/lancedb_repository.py +74 -5
  4. spatial_memory/config.py +115 -2
  5. spatial_memory/core/__init__.py +35 -0
  6. spatial_memory/core/cache.py +317 -0
  7. spatial_memory/core/circuit_breaker.py +297 -0
  8. spatial_memory/core/connection_pool.py +41 -3
  9. spatial_memory/core/consolidation_strategies.py +402 -0
  10. spatial_memory/core/database.py +791 -769
  11. spatial_memory/core/db_idempotency.py +242 -0
  12. spatial_memory/core/db_indexes.py +575 -0
  13. spatial_memory/core/db_migrations.py +584 -0
  14. spatial_memory/core/db_search.py +509 -0
  15. spatial_memory/core/db_versioning.py +177 -0
  16. spatial_memory/core/embeddings.py +156 -19
  17. spatial_memory/core/errors.py +75 -3
  18. spatial_memory/core/filesystem.py +178 -0
  19. spatial_memory/core/logging.py +194 -103
  20. spatial_memory/core/models.py +4 -0
  21. spatial_memory/core/rate_limiter.py +326 -105
  22. spatial_memory/core/response_types.py +497 -0
  23. spatial_memory/core/tracing.py +300 -0
  24. spatial_memory/core/validation.py +403 -319
  25. spatial_memory/factory.py +407 -0
  26. spatial_memory/migrations/__init__.py +40 -0
  27. spatial_memory/ports/repositories.py +52 -2
  28. spatial_memory/server.py +329 -188
  29. spatial_memory/services/export_import.py +61 -43
  30. spatial_memory/services/lifecycle.py +397 -122
  31. spatial_memory/services/memory.py +81 -4
  32. spatial_memory/services/spatial.py +129 -46
  33. spatial_memory/tools/definitions.py +695 -671
  34. {spatial_memory_mcp-1.0.3.dist-info → spatial_memory_mcp-1.6.0.dist-info}/METADATA +83 -3
  35. spatial_memory_mcp-1.6.0.dist-info/RECORD +54 -0
  36. spatial_memory_mcp-1.0.3.dist-info/RECORD +0 -41
  37. {spatial_memory_mcp-1.0.3.dist-info → spatial_memory_mcp-1.6.0.dist-info}/WHEEL +0 -0
  38. {spatial_memory_mcp-1.0.3.dist-info → spatial_memory_mcp-1.6.0.dist-info}/entry_points.txt +0 -0
  39. {spatial_memory_mcp-1.0.3.dist-info → spatial_memory_mcp-1.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spatial-memory-mcp
3
- Version: 1.0.3
3
+ Version: 1.6.0
4
4
  Summary: Spatial bidirectional persistent memory MCP server for LLMs - vector-based semantic memory as a navigable landscape
5
5
  Project-URL: Homepage, https://github.com/arman-tech/spatial-memory-mcp
6
6
  Project-URL: Repository, https://github.com/arman-tech/spatial-memory-mcp
@@ -44,7 +44,7 @@ Description-Content-Type: text/markdown
44
44
 
45
45
  A vector-based spatial memory system that treats knowledge as a navigable landscape, not a filing cabinet.
46
46
 
47
- > **Project Status**: All phases complete. Production-ready with 1094 tests passing.
47
+ > **Project Status**: All phases complete. Production-ready with 1360 tests passing.
48
48
 
49
49
  ## Supported Platforms
50
50
 
@@ -63,6 +63,42 @@ Spatial Memory MCP Server provides persistent, semantic memory for LLMs through
63
63
  - **Visual Understanding**: Generate Mermaid/SVG/JSON visualizations of your knowledge space
64
64
  - **Hybrid Search**: Combine vector similarity with full-text search
65
65
 
66
+ ## Why Spatial Memory?
67
+
68
+ ### Zero Cognitive Load
69
+ **You never think about memory. Claude handles everything automatically.**
70
+
71
+ - Auto-loads relevant context at session start
72
+ - Recognizes memory-worthy moments and asks "Save this? y/n"
73
+ - Synthesizes answers naturally—no raw JSON, no memory IDs
74
+ - MCP instructions inject automatically—zero configuration
75
+
76
+ ### Cognitive Architecture, Not Storage
77
+ Other memory systems store embeddings. Spatial Memory implements how memory actually works:
78
+
79
+ - **Decay**: Memories fade over time (Ebbinghaus forgetting curve)
80
+ - **Reinforcement**: Frequently accessed memories grow stronger
81
+ - **Consolidation**: Similar memories merge intelligently
82
+ - **Extraction**: Auto-capture facts, decisions, patterns from conversations
83
+
84
+ ### Spatial Navigation (Unique Innovation)
85
+ Navigate knowledge like a landscape, not a filing cabinet:
86
+
87
+ | Tool | What It Does |
88
+ |------|-------------|
89
+ | **Journey** | SLERP between two memories—discover what's conceptually in between |
90
+ | **Wander** | Random walk exploration—find unexpected connections |
91
+ | **Regions** | HDBSCAN clustering—see how your knowledge self-organizes |
92
+ | **Visualize** | UMAP projection—view your memory space in 2D/3D |
93
+
94
+ ### 21 Tools vs. 3-6 in Competitors
95
+ Full lifecycle management: core operations, spatial navigation, memory lifecycle, hybrid search, namespace management, data import/export, and health/stats monitoring.
96
+
97
+ ### Enterprise-Ready
98
+ Connection pooling, circuit breakers, per-agent rate limiting, request tracing, response caching, and defense-in-depth security (path traversal prevention, SQL injection detection, input validation).
99
+
100
+ > *See [MARKETING.md](MARKETING.md) for the complete comparison with competitors.*
101
+
66
102
  ## Features
67
103
 
68
104
  - **21 MCP tools** across 4 categories (core, spatial, lifecycle, utility)
@@ -72,7 +108,7 @@ Spatial Memory MCP Server provides persistent, semantic memory for LLMs through
72
108
  - **ONNX Runtime** by default for 2-3x faster embeddings
73
109
  - **Enterprise features**: Connection pooling, retry logic, batch operations
74
110
  - **Comprehensive security**: Path validation, SQL injection prevention, input sanitization
75
- - **1094 tests** including security edge cases
111
+ - **1360 tests** including security edge cases
76
112
 
77
113
  ## Roadmap
78
114
 
@@ -130,6 +166,31 @@ If ONNX shows as unavailable, reinstall with:
130
166
  pip install --force-reinstall "sentence-transformers[onnx]"
131
167
  ```
132
168
 
169
+ ### Optional Performance Dependencies
170
+
171
+ For best performance, install these optional dependencies:
172
+
173
+ ```bash
174
+ # ONNX Runtime - 2-3x faster embeddings, 60% less memory
175
+ pip install onnxruntime
176
+
177
+ # Or install with sentence-transformers ONNX support
178
+ pip install "sentence-transformers[onnx]"
179
+
180
+ # scipy - Optimized pairwise similarity calculations
181
+ # Used by visualize, regions, and consolidate operations
182
+ pip install scipy
183
+ ```
184
+
185
+ **Performance comparison:**
186
+
187
+ | Component | Without | With | Benefit |
188
+ |-----------|---------|------|---------|
189
+ | ONNX Runtime | PyTorch inference | ONNX inference | 2-3x faster embeddings |
190
+ | scipy | numpy matrix ops | scipy.cdist | Faster similarity calculations |
191
+
192
+ Both are optional - the system includes fallbacks that use numpy when these aren't available.
193
+
133
194
  ## Configuration
134
195
 
135
196
  Copy `.env.example` to `.env` and customize:
@@ -292,6 +353,25 @@ Export all memories to parquet format
292
353
  - **Error Sanitization**: Internal errors return reference IDs, not stack traces
293
354
  - **Secure Credential Handling**: API keys stored as SecretStr
294
355
 
356
+ ## Deployment Considerations
357
+
358
+ ### Network Filesystems (NFS/SMB/CIFS)
359
+
360
+ Spatial Memory uses file-based locking to prevent data corruption when multiple processes access the same storage. **File locking does not work reliably on network filesystems** such as NFS, SMB/CIFS, or SSHFS.
361
+
362
+ If the storage path is on a network filesystem, you will see a warning at startup:
363
+
364
+ ```
365
+ WARNING: Storage path appears to be on a network filesystem (nfs).
366
+ File-based locking does not work reliably on network filesystems.
367
+ Running multiple instances against this storage may cause data corruption.
368
+ ```
369
+
370
+ **Recommendations:**
371
+ 1. **Use local storage** (default: `./.spatial-memory`) for reliable operation
372
+ 2. **Single instance only**: If you must use network storage, ensure only one MCP server instance accesses it
373
+ 3. **Acknowledge the risk**: Set `SPATIAL_MEMORY_ACKNOWLEDGE_NETWORK_FS_RISK=true` to suppress the warning
374
+
295
375
  ## Development
296
376
 
297
377
  ### Running Tests
@@ -0,0 +1,54 @@
1
+ spatial_memory/__init__.py,sha256=5llnvvlYGS28SmMQcE_DhSSTaFyvhh0BASb-ZHX4Z1o,2154
2
+ spatial_memory/__main__.py,sha256=PaB4lkEBePNFCFDwjZo2mtQiWCNbK6U0fZ8jsQ9luNE,7761
3
+ spatial_memory/config.py,sha256=SvG67Z8Hjw0XAFzVn59lLm-_Pz5dzL-c4Dli3_mtG0M,22537
4
+ spatial_memory/factory.py,sha256=iuVKeE0q9SrDo816k2H744nELFeq7vVOdg4puHxCFOM,15806
5
+ spatial_memory/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ spatial_memory/server.py,sha256=4a4WbS_Us0OiLfRyt5Mj3WU9rMCdMRbU6ziWajG-72I,45779
7
+ spatial_memory/verify.py,sha256=4p4KQYRUBrKGax66n629hvb9Ul8sR2yXXnfyZLpNk-o,3939
8
+ spatial_memory/adapters/__init__.py,sha256=xNPQCOYVsTP2ogMEcYGbxGJYH9pdksB66MZ7ctK6KbM,187
9
+ spatial_memory/adapters/lancedb_repository.py,sha256=NwZQ-SGPTe82cFbOYtYERPRvY3eujz5iCd7EOaLiDfE,31247
10
+ spatial_memory/core/__init__.py,sha256=wG6fws4AIF3X1vJdWA2_w2bMQo4ZXez_BYtcYvFGQvY,3033
11
+ spatial_memory/core/cache.py,sha256=QqG0hhpaDH0mzBLIEinGP3WkKsb70QfCLMGpptguWIM,10038
12
+ spatial_memory/core/circuit_breaker.py,sha256=zxqnOWiAnx_S7oX44UY57ihpk7V27fzW6rYgBn1BWp8,10734
13
+ spatial_memory/core/connection_pool.py,sha256=ienTFQ-tFYwkaWD2_lcs9T8uYXL45OMpzCX5V-l_MMk,7617
14
+ spatial_memory/core/consolidation_strategies.py,sha256=_PGdVuz4Kkf96cdIEPieGTOfubgOc6PoUYuXfJRwBd8,12805
15
+ spatial_memory/core/database.py,sha256=3Llo2FLznQA2zUYf5r1JFnht61bPZQGTGeZ2IVhxDMI,118227
16
+ spatial_memory/core/db_idempotency.py,sha256=B0EYdZFZYmQ7s101RviswySta7Qp7TZ2fiqWES_djyw,7978
17
+ spatial_memory/core/db_indexes.py,sha256=p1glBuna81yY8bu8hhJkR6AhuzeZgaAaeKnsd3Oe4No,20115
18
+ spatial_memory/core/db_migrations.py,sha256=x-_dXZrtfZZQwb4d3ZW32zw1-CzbDLC7Y33fdsvQM5Y,19138
19
+ spatial_memory/core/db_search.py,sha256=XnNpqI2oto9EKbmp7bYBxeaxGfblJicR9KazvZKfhbg,19866
20
+ spatial_memory/core/db_versioning.py,sha256=7LGWQO6EiwIgw-C5e81xG4jEO34b5y95Ag6uoVrU7Xw,5984
21
+ spatial_memory/core/embeddings.py,sha256=g_C8rmrNH8qTroPcg-aYJo5Z6NR_YqGN050Iryytx5c,20892
22
+ spatial_memory/core/errors.py,sha256=mGQlPNNiNOdErYPXdEQXM1_-IeueUB_jtgdt8P8lzUQ,8799
23
+ spatial_memory/core/file_security.py,sha256=kHIYEnZIRFz94FxCJ7oOHiaihgQRB1rsOHHmJprHNhU,25766
24
+ spatial_memory/core/filesystem.py,sha256=aE8BvM8tyIMbjtaiyG0Si0F1c85jxAwa3IM5I_kvkME,5602
25
+ spatial_memory/core/health.py,sha256=Xq9TYfmBN3YLjYOrpFWtvbR1-fQbSrP1oorSVjRHOSg,9145
26
+ spatial_memory/core/helpers.py,sha256=nxLXGfkpydWzEgMj8PkdX9gVvybN2aCH-CfbEkq6U_w,1931
27
+ spatial_memory/core/import_security.py,sha256=DiG0BsX65JGGf6B1T855SVz1TZB1ViI3JXRi1uW03sQ,13296
28
+ spatial_memory/core/lifecycle_ops.py,sha256=P8jc4JGBF39ayNikgLu0I3kGcJ3ph0VsvAHSxjp35FI,35836
29
+ spatial_memory/core/logging.py,sha256=JfFRzHmhZ2BPNSJiKIHGjfUeskFVo8Bj7nOKznvv0kU,6542
30
+ spatial_memory/core/metrics.py,sha256=8B26sAd2y6xrpaJr8mNgOAMzAZDd1uXOvAGxz_1nhfY,5383
31
+ spatial_memory/core/models.py,sha256=VX61h5_pnsIQ5w5LjpElhVTW4UAa0RKadnrtLLOQb94,17353
32
+ spatial_memory/core/rate_limiter.py,sha256=5A3YI6C0_YrWZeSBBxF7Eu5HUD8rodS45301730doF0,10582
33
+ spatial_memory/core/response_types.py,sha256=VhfQLpTxgdJf3CYPtQALvh4KmaUbHzVAT_qtRVtoQgs,10603
34
+ spatial_memory/core/security.py,sha256=fjIYqsyzK4qqm7sI8FNEE2xx9WjNJnrAslOBLVRVwgs,19759
35
+ spatial_memory/core/spatial_ops.py,sha256=_xNrZzrbL7w2uAMJkQZEtTMjERQpo04cuSUoTNebiew,13360
36
+ spatial_memory/core/tracing.py,sha256=9O3WdUJfCl2sohYWlaQETrCO7_P_N3qY_MqSAnpQPl0,8438
37
+ spatial_memory/core/utils.py,sha256=YvvU3EbbAicR732LkHMM5-u4wvBaJ4G9DigBaB2CoI4,3438
38
+ spatial_memory/core/validation.py,sha256=A8a5PF7X8Veg8S176UFEqkZDBlWILbQM-5wtAMOgG3U,13476
39
+ spatial_memory/migrations/__init__.py,sha256=wljoV_u2PPx-dH6JOPmjEP5xEbwoM9HQ1WYDZr7PW58,1072
40
+ spatial_memory/ports/__init__.py,sha256=Lq9ht9AS4VwPbMojtd_FYkA7lUuCXmYHwv6sweJi9AQ,243
41
+ spatial_memory/ports/repositories.py,sha256=oJMU7UHoj4YudyeOQaSkI9A2z81L3Vn2q7hm3RILfXI,19920
42
+ spatial_memory/services/__init__.py,sha256=epaF3aHxK2sgGVMp6rS_fxMMAvDVPxjaWm1n4hKOMWU,1564
43
+ spatial_memory/services/export_import.py,sha256=2vZnFvX1deV-Zdj0HGkc2My8Oy1BrFJL8Peep25iUKI,38190
44
+ spatial_memory/services/lifecycle.py,sha256=asxFBp06qfnaZJpAph6Dm6i7kN1cREXuoopkjuOMvwc,42937
45
+ spatial_memory/services/memory.py,sha256=MZ9NMNXBRYEA39vzT5gAB7PXJrGFwC-D98SLZe7Z50Q,12944
46
+ spatial_memory/services/spatial.py,sha256=3UMPm4mRQ42oXNwLUEYp4SAinnGX4dwOnWaK9CkVViA,42552
47
+ spatial_memory/services/utility.py,sha256=89rn1gNJwNQIhrWjmVS3RKP5AQuCvjswFeefMp7yK-4,14950
48
+ spatial_memory/tools/__init__.py,sha256=ZhFZp5j8HA4Qx5pVcRmgTcBbqY3X5TmgMNpSkyAMqJA,127
49
+ spatial_memory/tools/definitions.py,sha256=Ueg_BrRGJcp_jnQD95DiYFPkxU419XPkbjzQFDG3jtY,25397
50
+ spatial_memory_mcp-1.6.0.dist-info/METADATA,sha256=SKMn9h_8wYhMK45Vh5iqkH8-HSyjaf5r96Fkyv0tBek,15438
51
+ spatial_memory_mcp-1.6.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
52
+ spatial_memory_mcp-1.6.0.dist-info/entry_points.txt,sha256=nJ4RJBB9SvhNktJdikcAS27fSwtKekpgPR4GTy2r1cE,64
53
+ spatial_memory_mcp-1.6.0.dist-info/licenses/LICENSE,sha256=g65vrroU3yJxekbYV8xmDj7KFrXAg89eCM8vcWrpKmU,1095
54
+ spatial_memory_mcp-1.6.0.dist-info/RECORD,,
@@ -1,41 +0,0 @@
1
- spatial_memory/__init__.py,sha256=lSPxVgNQDW7w4nPi0Oq7Sh5CkOKc0MYjxnyD9DH3oc0,2057
2
- spatial_memory/__main__.py,sha256=bhoAnPQkuD-jAHavxQEbv3JxpsbWB9qvWlYEWk0_TWQ,288
3
- spatial_memory/config.py,sha256=MC43JW6qjjiQ82CPscYxBXTH3ntN4Qpk9yYupXq7DDc,18434
4
- spatial_memory/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- spatial_memory/server.py,sha256=TcDeIVEW9UoMPBrdlbI_HIQm61J3H6c_DyfYGH7Q7aE,41506
6
- spatial_memory/verify.py,sha256=4p4KQYRUBrKGax66n629hvb9Ul8sR2yXXnfyZLpNk-o,3939
7
- spatial_memory/adapters/__init__.py,sha256=xNPQCOYVsTP2ogMEcYGbxGJYH9pdksB66MZ7ctK6KbM,187
8
- spatial_memory/adapters/lancedb_repository.py,sha256=nFC3I_biNFMC546hoJLnqbTCgk5LSlyfnz3QDC77fX8,28430
9
- spatial_memory/core/__init__.py,sha256=lLnEqUbI32ujmyeuYUXgof_k1suLjhmMRVNM5UOvm-4,2058
10
- spatial_memory/core/connection_pool.py,sha256=-mD8nvgiKpVlycMw24FNaEh3E1XA4hXNkaaQW023I40,6083
11
- spatial_memory/core/database.py,sha256=rZ48npMsnvVXvkxmAe_55qLwKITJgzkLfc6qJYYwEpc,115985
12
- spatial_memory/core/embeddings.py,sha256=tM88EpxE_DhC1uoJxBAIYYw1ZYzIbn3hnL0opzBDz5A,14759
13
- spatial_memory/core/errors.py,sha256=yqLt9KqE5iEBvKha1wZWNtN_QaVYcX9YPpiRmeIN11A,6551
14
- spatial_memory/core/file_security.py,sha256=kHIYEnZIRFz94FxCJ7oOHiaihgQRB1rsOHHmJprHNhU,25766
15
- spatial_memory/core/health.py,sha256=Xq9TYfmBN3YLjYOrpFWtvbR1-fQbSrP1oorSVjRHOSg,9145
16
- spatial_memory/core/helpers.py,sha256=nxLXGfkpydWzEgMj8PkdX9gVvybN2aCH-CfbEkq6U_w,1931
17
- spatial_memory/core/import_security.py,sha256=DiG0BsX65JGGf6B1T855SVz1TZB1ViI3JXRi1uW03sQ,13296
18
- spatial_memory/core/lifecycle_ops.py,sha256=P8jc4JGBF39ayNikgLu0I3kGcJ3ph0VsvAHSxjp35FI,35836
19
- spatial_memory/core/logging.py,sha256=5WTPRm7s-aIxISfN40eEOR3821fP5DyDlZwRwrcI1cA,3102
20
- spatial_memory/core/metrics.py,sha256=8B26sAd2y6xrpaJr8mNgOAMzAZDd1uXOvAGxz_1nhfY,5383
21
- spatial_memory/core/models.py,sha256=QU3fryNMucHMV8Cbd-jiCU0ofrAK525QNerVk_Zb1oo,17190
22
- spatial_memory/core/rate_limiter.py,sha256=avtZeA65W33NF99RtY_rIMD9_UzgMiFaqXsIA-7HvQ8,3172
23
- spatial_memory/core/security.py,sha256=fjIYqsyzK4qqm7sI8FNEE2xx9WjNJnrAslOBLVRVwgs,19759
24
- spatial_memory/core/spatial_ops.py,sha256=_xNrZzrbL7w2uAMJkQZEtTMjERQpo04cuSUoTNebiew,13360
25
- spatial_memory/core/utils.py,sha256=YvvU3EbbAicR732LkHMM5-u4wvBaJ4G9DigBaB2CoI4,3438
26
- spatial_memory/core/validation.py,sha256=xMEMRNV0je3MpsHLzXGBHDuO5pZwKIH3pNu57gCkyNs,9679
27
- spatial_memory/ports/__init__.py,sha256=Lq9ht9AS4VwPbMojtd_FYkA7lUuCXmYHwv6sweJi9AQ,243
28
- spatial_memory/ports/repositories.py,sha256=_54TvFw5OIQ6ED8mNSC-7m2jOKVlyrFsuGDefhEADok,18081
29
- spatial_memory/services/__init__.py,sha256=epaF3aHxK2sgGVMp6rS_fxMMAvDVPxjaWm1n4hKOMWU,1564
30
- spatial_memory/services/export_import.py,sha256=ihPmObVOS86dbo0q_vIUMqlXFZOX6dth8pulnbK2dVM,37639
31
- spatial_memory/services/lifecycle.py,sha256=bWGHdAjueU1dE16YmHO2BPsizxej8_RupdnjhiJuItg,32681
32
- spatial_memory/services/memory.py,sha256=-NSDWc9fp_h-wdYyaErkie0M31JmWj9IXoFWH0D_l7E,9775
33
- spatial_memory/services/spatial.py,sha256=7cnZbZbHHx3lhvSv_l6gEUCcx-drq6Q3XGtD5_oi0dc,38668
34
- spatial_memory/services/utility.py,sha256=89rn1gNJwNQIhrWjmVS3RKP5AQuCvjswFeefMp7yK-4,14950
35
- spatial_memory/tools/__init__.py,sha256=ZhFZp5j8HA4Qx5pVcRmgTcBbqY3X5TmgMNpSkyAMqJA,127
36
- spatial_memory/tools/definitions.py,sha256=zrs9o_9W76ZM0dORUegqkxOuw9lT3mujXy-bulPKFxY,23544
37
- spatial_memory_mcp-1.0.3.dist-info/METADATA,sha256=BhZ2cvsiNuajdvAGc9O_Sw0a6sUqLtFbB99w15Fg69E,12035
38
- spatial_memory_mcp-1.0.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
39
- spatial_memory_mcp-1.0.3.dist-info/entry_points.txt,sha256=nJ4RJBB9SvhNktJdikcAS27fSwtKekpgPR4GTy2r1cE,64
40
- spatial_memory_mcp-1.0.3.dist-info/licenses/LICENSE,sha256=g65vrroU3yJxekbYV8xmDj7KFrXAg89eCM8vcWrpKmU,1095
41
- spatial_memory_mcp-1.0.3.dist-info/RECORD,,