Metadata-Version: 2.4
Name: jl-ecms-server
Version: 0.62.0
Summary: MIRIX Server - Multi-Agent Personal Assistant with Advanced Memory System
Home-page: https://github.com/Mirix-AI/MIRIX
Author: Mirix AI
Author-email: yuwang@mirix.io
License: Apache License 2.0
Project-URL: Documentation, https://docs.mirix.io
Project-URL: Website, https://mirix.io
Project-URL: Source Code, https://github.com/Mirix-AI/MIRIX
Project-URL: Bug Reports, https://github.com/Mirix-AI/MIRIX/issues
Keywords: ai,memory,agent,llm,assistant,chatbot,multimodal,server,fastapi
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications :: Chat
Classifier: Framework :: FastAPI
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pytz>=2024.1
Requires-Dist: numpy>=1.24.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: Markdown>=3.5.0
Requires-Dist: Pillow<11.0.0,>=10.2.0
Requires-Dist: scikit-image>=0.22.0
Requires-Dist: openai<2.0.0,>=1.108.1
Requires-Dist: tiktoken>=0.5.0
Requires-Dist: google-genai>=0.4.0
Requires-Dist: anthropic>=0.23.0
Requires-Dist: cohere>=4.0.0
Requires-Dist: fastapi>=0.104.1
Requires-Dist: uvicorn[standard]>=0.31.1
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: httpx>=0.25.0
Requires-Dist: httpx_sse>=0.3.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: asyncpg
Requires-Dist: aiosqlite
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: pg8000>=1.30.0
Requires-Dist: pgvector>=0.2.0
Requires-Dist: redis[hiredis]<8.0.0,>=7.0.1
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: demjson3>=3.0.0
Requires-Dist: pathvalidate>=3.0.0
Requires-Dist: docstring_parser>=0.15
Requires-Dist: jinja2>=3.1.0
Requires-Dist: humps>=0.2.0
Requires-Dist: colorama>=0.4.0
Requires-Dist: rapidfuzz>=3.0.0
Requires-Dist: rank-bm25>=0.2.0
Requires-Dist: psutil>=5.9.0
Requires-Dist: json_repair>=0.12.0
Requires-Dist: rich<14.0.0,>=13.7.1
Requires-Dist: anyio>=4.7.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: requests>=2.31.0
Requires-Dist: llama_index>=0.9.0
Requires-Dist: llama-index-embeddings-google-genai>=0.1.0
Requires-Dist: composio>=0.3.0
Requires-Dist: mcp>=0.1.0
Requires-Dist: google-auth>=2.0.0
Requires-Dist: google-auth-oauthlib>=1.0.0
Requires-Dist: aiogoogle
Requires-Dist: opentelemetry-api>=1.20.0
Requires-Dist: opentelemetry-sdk>=1.20.0
Requires-Dist: opentelemetry-exporter-otlp>=1.20.0
Requires-Dist: opentelemetry-instrumentation-requests>=0.41b0
Requires-Dist: langfuse<4.0.0,>=3.11.0
Requires-Dist: SpeechRecognition>=3.10.0
Requires-Dist: pydub>=0.25.0
Requires-Dist: protobuf<6.0.0,>=5.0.0
Requires-Dist: aiokafka<0.14.0,>=0.13.0
Requires-Dist: bcrypt>=4.0.0
Requires-Dist: PyJWT>=2.10.1
Requires-Dist: asyncddgs
Provides-Extra: dev
Requires-Dist: pytest>=6.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.5.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: pyright>=1.1.0; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

![Mirix Logo](https://github.com/RenKoya1/MIRIX/raw/main/assets/logo.png)

> **⚠️ This is Intuit's fork of MIRIX.** The README below describes the upstream OSS project. For this fork's integration with the Enterprise Context & Memory Service (ECMS), see [`CLAUDE.md`](./CLAUDE.md) and [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md). Key differences:
> - Screen activity capture is **not used** — memories come from conversations only.
> - ECMS imports MIRIX as a Python library and does not run MIRIX's FastAPI app.
> - Agent chaining is disabled; each agent runs exactly once per save.
> - A provenance sidecar (`memory_source`, `memory_citation`, `source_message`) is written alongside every memory (VEPAGE-760).

## MIRIX - Multi-Agent Personal Assistant with an Advanced Memory System

Your personal AI that builds memory through screen observation and natural conversation

| 🌐 [Website](https://mirix.io) | 📚 [Documentation](https://docs.mirix.io) | 📄 [Paper](https://arxiv.org/abs/2507.07957) | 💬 [Discord](https://discord.gg/S6CeHNrJ) 
<!-- | [Twitter/X](https://twitter.com/mirix_ai) | [Discord](https://discord.gg/S6CeHNrJ) | -->

---

### Key Features 🔥

- **Multi-Agent Memory System:** Six specialized memory components (Core, Episodic, Semantic, Procedural, Resource, Knowledge Vault) managed by dedicated agents
- **Screen Activity Tracking:** Continuous visual data capture and intelligent consolidation into structured memories  
- **Privacy-First Design:** All long-term data stored locally with user-controlled privacy settings
- **Advanced Search:** PostgreSQL-native BM25 full-text search with vector similarity support
- **Multi-Modal Input:** Text, images, voice, and screen captures processed seamlessly

### Quick Start
**Step 1: Backend & Dashboard (Docker):**
```
docker compose up -d --pull always
```
- Dashboard: http://localhost:5173  
- API: http://localhost:8531  

**Step 2: Create an API key in the dashboard (http://localhost:5173) and set as the environmental variable `MIRIX_API_KEY`.**

**Step 3: Client (Python, `mirix-client`, https://pypi.org/project/mirix-client/):**
```
pip install mirix-client
```

Now you are ready to go! See the example below:
```python
from mirix import MirixClient

client = MirixClient(
    api_key="your-api-key",
    base_url="http://localhost:8531",
)

client.initialize_meta_agent(
    config={
        "llm_config": {
            "model": "gemini-2.0-flash",
            "model_endpoint_type": "google_ai",
            "api_key": "your-api-key-here",
            "model_endpoint": "https://generativelanguage.googleapis.com",
            "context_window": 1_000_000,
        },
        "embedding_config": {
            "embedding_model": "text-embedding-004",
            "embedding_endpoint_type": "google_ai",
            "api_key": "your-api-key-here",
            "embedding_endpoint": "https://generativelanguage.googleapis.com",
            "embedding_dim": 768,
        },
        "meta_agent_config": {
            "agents": [
                {
                    "core_memory_agent": {
                        "blocks": [
                            {"label": "human", "value": ""},
                            {"label": "persona", "value": "I am a helpful assistant."},
                        ]
                    }
                },
                "resource_memory_agent",
                "semantic_memory_agent",
                "episodic_memory_agent",
                "procedural_memory_agent",
                "knowledge_vault_memory_agent",
            ],
        },
    }
)

client.add(
    user_id="demo-user",
    messages=[
        {"role": "user", "content": [{"type": "text", "text": "The moon now has a president."}]},
        {"role": "assistant", "content": [{"type": "text", "text": "Noted."}]},
    ],
)

memories = client.retrieve_with_conversation(
    user_id="demo-user",
    messages=[
        {"role": "user", "content": [{"type": "text", "text": "What did we discuss on MirixDB in last 4 days?"}]},
    ],
    limit=5,
)
print(memories)
```
For more API examples, see `samples/run_client.py`.

## License

Mirix is released under the Apache License 2.0. See the [LICENSE](LICENSE) file for more details.

## Contact

For questions, suggestions, or issues, please open an issue on the GitHub repository or contact us at `founders@mirix.io`

## Join Our Community

Connect with other Mirix users, share your thoughts, and get support:

### 💬 Discord Community
Join our Discord server for real-time discussions, support, and community updates:
**[https://discord.gg/S6CeHNrJ](https://discord.gg/S6CeHNrJ)**

### 🎯 Weekly Discussion Sessions
We host weekly discussion sessions where you can:
- Discuss issues and bugs
- Share ideas about future directions
- Get general consultations and support
- Connect with the development team and community

**📅 Schedule:** Friday nights, 8-9 PM PST  
**🔗 Zoom Link:** [https://ucsd.zoom.us/j/96278791276](https://ucsd.zoom.us/j/96278791276)

### 📱 WeChat Group
You can add the account `ari_asm` so that I can add you to the group chat.

## Acknowledgement
We would like to thank [Letta](https://github.com/letta-ai/letta) for open-sourcing their framework, which served as the foundation for the memory system in this project.
