-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathpyproject.toml
More file actions
84 lines (74 loc) · 2.54 KB
/
Copy pathpyproject.toml
File metadata and controls
84 lines (74 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "agentguard"
version = "2.1"
description = "Runtime access control plane for agent tool-use (allow / deny / human_check / degrade)."
readme = "README.md"
requires-python = ">=3.11"
license = { file = "LICENSE" }
authors = [{ name = "AgentGuard Team" }]
keywords = ["ai", "agent", "security", "access-control", "llm"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Topic :: Security",
]
dependencies = [
"pydantic>=2.5,<3.0",
]
[project.urls]
Homepage = "https://github.com/WhitzardAgent/AgentGuard"
Documentation = "https://whitzard.tech/AgentGuard/"
Issues = "https://github.com/WhitzardAgent/AgentGuard/issues"
Releases = "https://github.com/WhitzardAgent/AgentGuard/releases"
[project.scripts]
agentguard = "agentguard.cli:main"
[project.optional-dependencies]
redis = ["redis>=5.0"]
postgres = ["psycopg[binary,pool]>=3.1"]
neo4j = ["neo4j>=5.15"]
server = ["fastapi>=0.110", "uvicorn>=0.27", "pyyaml>=6.0", "openai>=1.0"]
dynamic = ["litellm>=1.40"]
dify = ["dify-sdk>=0.1.28"]
sandbox = ["opensandbox"]
dev = ["pytest>=7.4", "pytest-asyncio>=0.23", "httpx>=0.27", "mypy>=1.8", "ruff>=0.4"]
[tool.setuptools.packages.find]
where = ["src/client/python", "src", "src/server", "."]
include = ["agentguard*", "shared*", "backend*", "frontend*", "skills*"]
[tool.setuptools.package-data]
frontend = [
"README.md",
"assets/*",
"static/common/*.css",
"static/common/*.js",
"static/pages/agents/*.js",
"static/pages/labels/*.js",
"static/pages/skills/*.js",
"static/pages/rules/*.js",
"static/pages/runtime/*.js",
"templates/*.html",
"templates/partials/*.html",
]
[tool.pytest.ini_options]
testpaths = ["tests", "src/server/frontend/tests"]
asyncio_mode = "auto"
markers = [
"load: throughput / concurrency suites (may be slow)",
"integration: requires a live TCP listener (serve_in_thread)",
]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP"]
# E501: line length is handled by review, not a hard gate.
# B008/B904: common FastAPI/exception-chaining patterns used intentionally.
# B039/B905/UP042: broader refactors (ContextVar defaults, zip(strict=), StrEnum) tracked as follow-up tech debt.
ignore = ["E501", "B008", "B904", "B039", "B905", "UP042"]
[tool.mypy]
python_version = "3.11"
strict = true
ignore_missing_imports = true
exclude = ["plugins\\.bak/"]