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

[project]
name = "hindsight-embed"
version = "0.4.14"
description = "Hindsight embedded CLI - local memory operations without a server"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
    "httpx>=0.27.0",
    "rich>=13.0.0",
]

[project.scripts]
hindsight-embed = "hindsight_embed.cli:main"

[tool.hatch.build.targets.wheel]
packages = ["hindsight_embed"]

[dependency-groups]
dev = [
    "ruff>=0.8.0",
    "ty>=0.0.1",
    "pytest>=8.0.0",
]

[tool.ruff]
line-length = 120
target-version = "py311"
exclude = [
    "tests/",
]

[tool.ruff.lint]
select = [
    "E",      # pycodestyle errors
    "W",      # pycodestyle warnings
    "F",      # Pyflakes
    "I",      # isort
]
ignore = [
    "E501",   # line too long (handled by formatter)
    "E402",   # module import not at top of file
    "F401",   # unused import (too noisy during development)
    "F841",   # unused variable (too noisy during development)
]

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

[tool.ty]
# Type checking configuration

[tool.ty.environment]
python-version = "3.11"

[tool.ty.rules]
# Disable noisy rules while keeping important ones
invalid-argument-type = "ignore"
invalid-return-type = "ignore"
