Metadata-Version: 2.5
Name: memtru
Version: 0.1.0
Summary: Reproducible reliability and isolation tests for AI agent memory systems.
Project-URL: Homepage, https://memtru.com
Project-URL: Documentation, https://memtru.com/docs
Project-URL: Demo, https://memtru.com/demo
Author-email: Memtru <contact@memtru.com>
License: Memtru CLI License
        
        Copyright (c) 2026 the Memtru copyright holder. All rights reserved.
        
        The Memtru command-line tool and Python package (the "Software") are
        proprietary. They are not open source.
        
        1. Permitted use. Subject to these terms, you may install and run the Software,
           free of charge, to test memory systems that you own or are authorized to
           test, including in your continuous-integration pipelines, and you may use the
           reports it produces for any purpose.
        
        2. Restrictions. You may not, and may not allow others to:
           a. copy, modify, translate or create derivative works of the Software,
              except copies needed to install and run it as permitted above;
           b. distribute, sublicense, sell, rent, lend or otherwise make the Software
              available to third parties, including as part of another product or a
              hosted service;
           c. reverse engineer, decompile or disassemble the Software, except to the
              extent applicable law expressly permits it despite this restriction;
           d. use the Software, or knowledge gained from its code, to build a competing
              product or service;
           e. remove or alter any notice of ownership in the Software.
           Writing your own adapter that loads into the Software through its documented
           interfaces is not a derivative work of the Software.
        
        3. Testing responsibility. Run the Software only against systems you are
           authorized to test. You are responsible for its effects on those systems.
        
        4. Memtru services. Use of the hosted Memtru service (for example uploading
           reports to memtru.com) is governed by its terms at https://memtru.com/terms.
        
        5. Ownership and feedback. The copyright holder keeps all rights not expressly
           granted here. Feedback you provide may be used without obligation to you.
        
        6. Termination. This license ends automatically if you breach it. On
           termination you must stop using the Software and delete all copies.
        
        7. No warranty. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
           EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
           MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. TEST
           RESULTS DESCRIBE THE SCENARIOS THAT RAN AND ARE NOT A GUARANTEE OF SECURITY.
        
        8. Limitation of liability. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT
           SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
           LIABILITY ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ITS USE.
        
        9. Other agreements. A separate written agreement signed by the copyright
           holder takes precedence over these terms.
        
        Third-party components used by the Software remain under their own licenses.
        
        Questions: contact@memtru.com
License-File: LICENSE
Keywords: ai agents,deletion,langgraph,llm,mem0,memory,privacy,testing
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.11
Requires-Dist: httpx<1,>=0.27
Requires-Dist: jinja2>=3.1
Requires-Dist: pydantic<3,>=2.9
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.7
Requires-Dist: typer<1,>=0.12
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Requires-Dist: types-pyyaml>=6; extra == 'dev'
Provides-Extra: langgraph
Requires-Dist: langgraph==1.2.16; extra == 'langgraph'
Provides-Extra: mem0
Requires-Dist: mem0ai==2.2.1; extra == 'mem0'
Description-Content-Type: text/markdown

# Memtru

Reproducible tests for the memory systems behind AI agents. Memtru writes synthetic markers into your memory store and checks the boundaries that matter: one user's memory never reaches another user or tenant, deleted memory stays deleted, updates replace stale facts, and sessions stay separate.

Every finding comes with the evidence to reproduce it. Tests run locally or in CI; nothing is uploaded unless you run `memtru upload`.

```bash
pip install memtru
memtru demo              # a deliberately broken store, then a fixed one
memtru demo --afterlife  # a deleted memory that comes back after a later event
```

## Test your own system

```bash
memtru init              # writes memtru.yaml
memtru doctor            # checks the configuration and adapter
memtru test              # runs the scenarios, writes JSON and HTML reports
```

Adapters: the built-in reference store (`in_memory`), any service implementing the Memtru REST contract (`http`), your own Python class (`custom`), and Mem0 OSS (`pip install "memtru[mem0]"`).

## Scenarios

| Id | What it checks |
|---|---|
| MT-ISO-001 | Cross-user isolation |
| MT-TEN-002 | Cross-tenant isolation |
| MT-DEL-003 | Deleted memory stops being retrievable |
| MT-STALE-004 | Updated facts replace stale ones |
| MT-SES-005 | Session isolation |
| MT-INT-006 | Updates change only the intended record |
| MT-POISON-007 | Controlled memory poisoning (agent mode) |
| MT-AF-001 | Afterlife: a late write brings deleted memory back |
| MT-AF-002 | Afterlife: a new session rebuilds deleted memory from history |

Every scenario reports PASS, FAIL, INCONCLUSIVE, ERROR or SKIPPED. A result is never PASS without a positive control showing the authorized path works.

Exit codes make it CI-ready: `0` pass, `1` a scenario failed, `3` execution error, `4` inconclusive when `--fail-on-inconclusive` is set.

## Links

- Documentation: https://memtru.com/docs
- Interactive demo: https://memtru.com/demo
- Dashboard for uploaded runs: https://memtru.com
- Security reports: security@memtru.com · Contact: contact@memtru.com

## License

Proprietary. Free to install and use for testing systems you own or are authorized to test; see the LICENSE file for the terms. Test results describe the scenarios that ran and are not a guarantee of security.
