[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "fidelis-memory" version = "0.1.0" description = "Fidelis Memory: faithful agent memory with zero-LLM retrieval by default. By Hermes Labs." readme = "README.md" license = { text = "MIT" } requires-python = ">=3.10" authors = [ { name = "Hermes Labs", email = "roli@hermes-labs.ai" }, ] keywords = [ "ai", "agents", "memory", "rag", "retrieval", "llm", "mem0", "agent", "zer0dex", "integer-pointer", "fidelity", "vector-store", "chromadb", "ollama", "mcp", "agent-memory", ] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ "mem0ai>=2.0.0,<3.0", "chromadb>=0.5.0", # mem0's ollama embedder lazy-imports `ollama`. Without it on PYTHONPATH, # mem0 hits an interactive input() prompt at boot, which crashes a # non-tty server context (launchd / systemd / MCP) with EOFError. Bundling # the client makes a source install non-interactive end-to-end. "ollama>=0.4.0", ] [project.optional-dependencies] ollama = [] # no extra deps — Ollama runs locally hybrid = ["bm25s>=0.2"] # BM25 fusion for recall_hybrid; degrades gracefully if absent dev = ["pytest", "pytest-asyncio", "httpx", "ruff==0.15.22"] [project.scripts] fidelis = "fidelis.cli:main" fidelis-server = "fidelis.server:main" fidelis-mcp = "fidelis.mcp_server:main" fidelis-lpci-server = "fidelis.scaffold_server:main" [project.urls] Homepage = "https://hermes-labs.ai" Repository = "https://github.com/hermes-labs-ai/fidelis" Documentation = "https://github.com/hermes-labs-ai/fidelis#readme" Issues = "https://github.com/hermes-labs-ai/fidelis/issues" Changelog = "https://github.com/hermes-labs-ai/fidelis/blob/main/CHANGELOG.md" Source = "https://github.com/hermes-labs-ai/fidelis" [tool.hatch.build.targets.wheel] packages = ["src/fidelis"] [tool.uv] # onnxruntime 1.24.1-1.24.3 (pulled in transitively by chromadb) declare # `requires-python = ">=3.10"` but ship no cp310 wheel and no sdist. uv resolves # universally across our whole floor, believes that metadata, and then fails to # install on 3.10; pip backtracks per-interpreter and never sees it. Excluding the # three mislabelled releases lets uv fork correctly: 1.23.2 on 3.10, latest above. # Upstream fixed the metadata from 1.24.4 onward. constraint-dependencies = ["onnxruntime!=1.24.1,!=1.24.2,!=1.24.3"] [tool.ruff] line-length = 100 target-version = "py310" [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"]