[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "mem0-cli"
version = "0.2.8"
description = "The official CLI for mem0 — the memory layer for AI agents"
readme = "README.md"
license = "Apache-2.0"
requires-python = ">=3.10"
authors = [
    { name = "mem0.ai", email = "founders@mem0.ai" },
]
keywords = ["mem0", "memory", "ai", "agents", "cli"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Environment :: Console",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: Apache Software License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Software Development :: Libraries",
]
dependencies = [
    "typer>=0.9.0",
    "rich>=13.0.0",
    "httpx>=0.24.0",
]

[project.optional-dependencies]
oss = ["mem0ai>=0.1.0"]
dev = [
    "pytest>=7.0",
    "pytest-asyncio>=0.21",
    "ruff>=0.1.0",
]

[project.scripts]
mem0 = "mem0_cli.app:main"

[tool.hatch.build.targets.wheel]
packages = ["src/mem0_cli"]

[tool.hatch.build.targets.sdist]
include = ["src/mem0_cli"]

[tool.ruff]
target-version = "py310"
line-length = 100

[tool.ruff.lint]
select = [
    "E",    # pycodestyle errors
    "F",    # pyflakes
    "I",    # isort (import sorting)
    "W",    # pycodestyle warnings
    "UP",   # pyupgrade (modern Python syntax)
    "B",    # flake8-bugbear (common bugs)
    "SIM",  # flake8-simplify
    "RUF",  # ruff-specific rules
]
ignore = [
    "E501",   # line too long — handled by formatter
    "B008",   # function call in default arg — required by Typer's Option/Argument pattern
    "SIM108", # ternary operator — sometimes less readable
]

[tool.ruff.lint.isort]
known-first-party = ["mem0_cli"]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
docstring-code-format = true
