[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "hindsight-api" version = "0.0.21" description = "Temporal + Semantic + Entity Memory System for AI agents using PostgreSQL" readme = "README.md" requires-python = ">=3.11" dependencies = [ "asyncpg>=0.29.0", "python-dotenv>=1.0.0", "openai>=1.0.0", "pydantic>=2.0.0", "rich>=13.0.0", "sentence-transformers>=2.2.0", "langchain-text-splitters>=0.3.0", "fastapi[standard]>=0.120.3", "uvicorn>=0.38.0", "wsproto>=1.0.0", "sqlalchemy>=2.0.44", "alembic>=1.17.1", "pgvector>=0.4.1", "greenlet>=3.2.4", "psycopg2-binary>=2.9.11", "transformers>=4.30.0", "torch>=2.0.0", "tiktoken>=0.12.0", "httpx>=0.27.0", "fastmcp>=2.0.0", "python-dateutil>=2.8.0", "opentelemetry-api>=1.20.0", "opentelemetry-sdk>=1.20.0", "opentelemetry-instrumentation-fastapi>=0.41b0", "opentelemetry-exporter-prometheus>=0.41b0", "dateparser>=1.2.2", "google-genai>=1.0.0", ] [project.optional-dependencies] test = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "pytest-timeout>=2.4.0", "pytest-xdist>=3.0.0", "filelock>=3.0.0", "testcontainers[postgres]>=4.0.0", ] [project.scripts] hindsight-api = "hindsight_api.cli:main" [tool.hatch.build.targets.wheel] packages = ["hindsight_api"] [tool.pytest.ini_options] log_cli = true log_cli_level = "INFO" log_cli_format = "%(asctime)s %(levelname)s %(message)s" log_cli_date_format = "%Y-%m-%d %H:%M:%S" addopts = "--timeout 60 -n auto --durations=10 -v" asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" log_auto_indent = true filterwarnings = [ "ignore:The @wait_container_is_ready decorator is deprecated:DeprecationWarning", "ignore::RuntimeWarning:asyncio", ] [dependency-groups] dev = [ "filelock>=3.20.0", "pytest>=9.0.0", "pytest-asyncio>=1.3.0", "pytest-timeout>=2.4.0", "pytest-xdist>=3.8.0", "python-dotenv>=1.2.1", "testcontainers>=4.13.3", ]