[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "knos" version = "0.1.8" description = "One local memory every coding agent on the machine shares — and it knows which of them is in your code right now." readme = "README.md" license = { file = "LICENSE" } requires-python = ">=3.10" authors = [{ name = "drexthealpha", email = "zulibro1999@gmail.com" }] keywords = ["memory", "agents", "mcp", "local-first", "coordination"] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Version Control :: Git", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ "typer>=0.12", "rich>=13", # The server is built on MCPServer, which arrived in 2.0 when FastMCP was # renamed. A 1.x resolution installs cleanly and then fails on import, so # the floor has to say 2. "mcp>=2.0", "sibyl-memory-client>=0.7.0", ] [project.optional-dependencies] # The suite drives the paid-answer path against a real x402 middleware # rather than a mock, so those are test dependencies, not runtime ones. # Without them `pytest` silently skipped six tests and CI looked green on a # path nobody had run. dev = ["pytest>=7", "flask>=3", "x402[evm]>=2.21", "httpx>=0.27"] [project.scripts] knos = "knos.cli:app" [project.urls] Homepage = "https://github.com/drexthealpha/Knos" Repository = "https://github.com/drexthealpha/Knos" Issues = "https://github.com/drexthealpha/Knos/issues" [tool.hatch.build.targets.wheel] packages = ["src/knos"] [tool.hatch.build.targets.sdist] include = ["src/knos", "tests", "README.md", "LICENSE"] [tool.pytest.ini_options] testpaths = ["tests"] # `pytest` runs the critical path only, in seconds, because a suite nobody # waits for is a suite nobody runs. Everything with `pytest -m ""`. addopts = '-m critical' markers = [ "critical: claim, withhold, concurrency, no-network, the four tools, private files, a rule its file dropped", ]