[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "rmbr" version = "0.2.7" description = "Give your agent memory and knowledge. One file, three lines, no server, no API key." readme = "README.md" license = "MIT" license-files = ["LICENSE"] requires-python = ">=3.10" authors = [{ name = "rmbr contributors" }] keywords = ["agents", "memory", "rag", "retrieval", "embedded", "mcp", "llm"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed", ] dependencies = [ "numpy", "usearch>=2.9", "fastembed>=0.3", # mcp_server.py is written against the MCPServer API introduced in the # mcp 2.x line (mcp.server.mcpserver) — mcp 1.x's FastMCP lived at a # different import path, so this floor is a hard requirement, not just # "newest available". "mcp>=2.0,<3", ] [project.optional-dependencies] bench = ["chromadb", "lancedb", "mem0ai"] openai = ["openai>=1.0"] voyage = ["voyageai>=0.2"] cohere = ["cohere>=5.0"] langchain = ["langchain-core>=0.3"] llamaindex = ["llama-index-core>=0.11"] langgraph = ["langgraph-checkpoint>=2.0"] pdf = ["pypdf>=4.0"] docx = ["python-docx>=1.0"] dev = ["ruff==0.16.1"] [project.scripts] rmbr = "rmbr.__main__:main" [project.urls] Homepage = "https://github.com/SRock44/rmbr" Repository = "https://github.com/SRock44/rmbr" [tool.hatch.build.targets.wheel] packages = ["src/rmbr"] [tool.pytest.ini_options] testpaths = ["tests"] [tool.ruff] line-length = 120 target-version = "py310" [tool.ruff.lint] # E501 (line-too-long) is deliberately not selected: rmbr's docstrings are # long-form prose by design (see CONTRIBUTING.md / the codebase's own # voice) - a hard column limit would fight that rather than catch bugs. # This selection is pyflakes (real bugs: unused imports/names, undefined # references) + import sorting + pyupgrade (safe modernization), all of # which the codebase already passes cleanly. select = ["E4", "E7", "E9", "F", "I", "UP"]