Address code review findings on the read-only Meta Graph client: add monkeypatch-based tests for access_token_from_env/MetaNotConfiguredError, assert generate_previews JSON-encodes the creative param, pin the existing fail-fast-on-partial-error contract with a dedicated test, and declare httpx as an explicit dependency since it was only resolving transitively.
101 lines
2.1 KiB
TOML
101 lines
2.1 KiB
TOML
[project]
|
|
name = "maskanx"
|
|
dynamic = ["version"]
|
|
description = "Multi-agent AI marketing team with 122 skills, multi-channel support, and shared memory"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10,<3.14"
|
|
license = {text = "Proprietary"}
|
|
dependencies = [
|
|
"agentscope==1.0.18",
|
|
"agentscope-runtime==1.1.3",
|
|
"exceptiongroup>=1.2.0; python_version < '3.11'",
|
|
"uvicorn>=0.40.0",
|
|
"apscheduler>=3.11.2,<4",
|
|
"questionary>=2.1.1",
|
|
"reme-ai==0.3.0.5",
|
|
"python-dotenv>=1.0.0",
|
|
"python-socks>=2.5.3",
|
|
"onnxruntime<1.24",
|
|
"python-telegram-bot>=20.0",
|
|
"aiosqlite>=0.19.0",
|
|
"sqlite-vec>=0.1.1",
|
|
"google-genai>=1.0.0",
|
|
"Pillow>=10.0.0",
|
|
"psycopg[binary]>=3.2.0",
|
|
"httpx>=0.27",
|
|
]
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "adclaw.__version__.__version__"}
|
|
|
|
[tool.setuptools]
|
|
packages = { find = { where = ["src"] } }
|
|
include-package-data = true
|
|
|
|
[tool.setuptools.package-data]
|
|
"adclaw" = [
|
|
"agents/md_files/**",
|
|
"agents/skills/**",
|
|
"tokenizer/**",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=42", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project.scripts]
|
|
maskanx = "adclaw.cli.main:cli"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.3.5",
|
|
"pytest-asyncio>=0.23.0",
|
|
"pre-commit>=4.2.0",
|
|
"pytest-cov>=6.2.1",
|
|
]
|
|
local = [
|
|
"huggingface_hub>=0.20.0",
|
|
"sentence-transformers>=2.2.0",
|
|
]
|
|
llamacpp = [
|
|
"maskanx[local]",
|
|
"llama-cpp-python>=0.3.0",
|
|
]
|
|
mlx = [
|
|
"maskanx[local]",
|
|
"mlx-lm>=0.10.0",
|
|
]
|
|
ollama = [
|
|
"ollama>=0.6.1",
|
|
]
|
|
browser = [
|
|
"playwright>=1.49.0",
|
|
]
|
|
feishu = [
|
|
"lark-oapi>=1.5.3",
|
|
]
|
|
discord = [
|
|
"discord-py>=2.3",
|
|
]
|
|
dingtalk = [
|
|
"dingtalk-stream>=0.24.3",
|
|
]
|
|
desktop = [
|
|
"mss>=9.0.0",
|
|
]
|
|
# Meta: all optional messaging channels
|
|
channels = [
|
|
"maskanx[feishu,discord,dingtalk]",
|
|
]
|
|
# Meta: full install  everything
|
|
all = [
|
|
"maskanx[browser,channels,desktop]",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
]
|