- pyproject.toml: add memory = ["numpy>=2.0", "chromadb>=1.0"] optional-deps group
- setup.sh: install .[dev,memory] so fresh-clone pytest works end-to-end
- test_vector.py: gate with pytest.importorskip("numpy"/"chromadb") — skip cleanly without extras
- memory_watcher.py: _check_vector_deps() probes venv at startup; health report now honest when chromadb absent
- bypass.json: 4 entries covering test_vector.py seedgo false-positives (architecture/docs/encapsulation/meta)
- dispatch/daemon.py: resolve relative branch_path to absolute before use
- dispatch/dispatch_monitor.py: resolve lock_file path so claude cwd is always absolute
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
92 lines
2.1 KiB
TOML
92 lines
2.1 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "aipass"
|
|
version = "2.1.0"
|
|
description = "A local multi-agent framework where your AI agents keep their memory, work together, and never ask you to re-explain context"
|
|
readme = "README.md"
|
|
license = "MIT"
|
|
requires-python = ">=3.10"
|
|
authors = [
|
|
{ name = "AIPass", email = "aipass.system@gmail.com" },
|
|
]
|
|
keywords = ["ai", "agents", "routing", "discovery", "multi-agent", "orchestration"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
]
|
|
dependencies = [
|
|
"rich>=13.0",
|
|
"watchdog>=3.0",
|
|
"requests>=2.28",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/AIOSAI/AIPass"
|
|
Repository = "https://github.com/AIOSAI/AIPass"
|
|
"Bug Tracker" = "https://github.com/AIOSAI/AIPass/issues"
|
|
|
|
[project.optional-dependencies]
|
|
llm = [
|
|
"openai>=1.0",
|
|
]
|
|
trinity = [
|
|
"trinity-pattern>=1.0.0",
|
|
]
|
|
memory = [
|
|
"numpy>=2.0",
|
|
"chromadb>=1.0",
|
|
]
|
|
seedgo = []
|
|
dev = [
|
|
"pytest",
|
|
"pytest-cov",
|
|
"pytest-timeout",
|
|
"ruff",
|
|
"coverage",
|
|
"pyright",
|
|
]
|
|
|
|
[project.scripts]
|
|
drone = "aipass.drone.cli:main"
|
|
aipass = "aipass.cli:cli_entry"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/aipass"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests", "src"]
|
|
norecursedirs = ["templates", "*.egg-info", ".git", ".venv", "__pycache__"]
|
|
|
|
[tool.coverage.run]
|
|
source = ["src/aipass"]
|
|
omit = ["*/tests/*", "*/templates/*"]
|
|
|
|
[tool.coverage.report]
|
|
show_missing = true
|
|
fail_under = 70
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"if __name__ == .__main__.",
|
|
"if TYPE_CHECKING:",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 120
|
|
|
|
[tool.ruff.lint]
|
|
ignore = ["E402"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"**/__init__.py" = ["F401"]
|