[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "seam-runtime"
version = "0.1.0"
description = "SEAM memory runtime and glassbox operator tooling for AI agents"
readme = "README.md"
license = { text = "Proprietary - source-available evaluation only" }
requires-python = ">=3.11"
classifiers = [
  "License :: Other/Proprietary License",
  "Private :: Do Not Upload",
]
keywords = ["ai", "agents", "memory", "mcp", "rag"]
dependencies = [
  "rich>=14.2,<16",
  "tiktoken>=0.8.0,<1.0",
]

[project.urls]
Homepage = "https://github.com/BlackhatShiftey/Seam_Runtime"
Repository = "https://github.com/BlackhatShiftey/Seam_Runtime"
Issues = "https://github.com/BlackhatShiftey/Seam_Runtime/issues"

[project.optional-dependencies]
dash = ["textual>=0.50,<1.0", "httpx>=0.24,<1.0"]
# Opt-in only. chromadb 1.0.0-1.5.9 (the whole current 1.x line) carries an
# UNPATCHED critical advisory GHSA-f4j7-r4q5-qw2c (pre-auth code injection in the
# Chroma SERVER). SEAM uses only the embedded PersistentClient (no server, no
# auth surface), so the embedded path is not exposed - but chromadb is therefore
# kept out of core deps and out of `all-extras`; install it deliberately via
# `seam[chroma]` only. Widen the pin to a patched release once one exists.
chroma = ["chromadb>=1.0,<2.0"]
pgvector = ["psycopg[binary]>=3.0,<4.0"]
sbert = ["sentence-transformers>=2.0,<3.0"]
server = ["fastapi>=0.100,<1.0", "uvicorn[standard]>=0.23,<1.0", "python-multipart>=0.0.6,<1.0"]
agent = []
rerank = ["sentence-transformers>=2.0,<3.0"]
bench-judge = ["anthropic>=0.40,<1.0", "openai>=1.0,<2.0"]
bench-mem0 = ["mem0ai>=0.1.0,<1.0", "chromadb>=0.4.0,<1.0"]
bench-zep = ["zep-cloud>=2.0.0,<3.0"]
# chromadb intentionally excluded: unpatched critical advisory (see `chroma` above); install via `seam[chroma]` only.
all-extras = ["textual>=0.50,<1.0", "httpx>=0.24,<1.0", "psycopg[binary]>=3.0,<4.0", "sentence-transformers>=2.0,<3.0", "fastapi>=0.100,<1.0", "uvicorn[standard]>=0.23,<1.0", "python-multipart>=0.0.6,<1.0", "anthropic>=0.40,<1.0", "openai>=1.0,<2.0", "mem0ai>=0.1.0,<1.0", "zep-cloud>=2.0.0,<3.0"]

[project.scripts]
seam = "seam:main"
seam-benchmark = "seam:benchmark_main"
seam-dash = "seam_runtime.dashboard:main"
seam-server = "seam_runtime.server:main"
seam-mcp = "seam_runtime.mcp_protocol:main"

[tool.setuptools]
py-modules = ["seam"]

[tool.setuptools.packages.find]
include = ["seam_runtime*"]

[tool.setuptools.package-data]
# Ship the browser dashboard assets so `seam serve`/`seam webui` can serve the
# UI from the installed package, not just from a source checkout.
seam_runtime = ["webui/*", "webui/**/*"]

[tool.setuptools.exclude-package-data]
# Operator-local Codex profile; never ship in the wheel.
seam_runtime = ["config.toml"]
