-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathpyproject.toml
More file actions
82 lines (71 loc) · 2.54 KB
/
pyproject.toml
File metadata and controls
82 lines (71 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
# Agent Control Root Configuration
#
# This monorepo contains:
# - models/ - Shared data models (published as agent-control-models)
# - engine/ - Evaluation engine (bundled into SDK and server)
# - evaluators/ - Evaluator implementations (bundled into server)
# - sdks/python/ - Python SDK (published as agent-control-sdk)
# - server/ - FastAPI server (published as agent-control-server)
[project]
name = "agent-control"
version = "7.1.0"
description = "Agent Control - protect your AI agents with controls"
requires-python = ">=3.12"
[tool.uv.workspace]
members = [
"models",
"server",
"sdks/python",
"engine",
"evaluators/builtin",
# NOTE: evaluators/contrib/* excluded - install separately when needed
]
[tool.uv]
# Require resolution to be compatible with the following environments so that CI and local dev
# pick versions with wheels available across platforms (fixes ruff wheel mismatch on Linux x86_64).
required-environments = [
"sys_platform == 'darwin' and platform_machine == 'arm64'",
"sys_platform == 'darwin' and platform_machine == 'x86_64'",
"sys_platform == 'linux' and platform_machine == 'x86_64'",
]
[tool.uv.sources]
agent-control-models = { workspace = true }
agent-control-engine = { workspace = true }
agent-control-evaluators = { workspace = true }
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP"]
ignore = []
[tool.ruff.lint.per-file-ignores]
# Allow late imports in examples (after sys.path manipulation)
"examples/**/*.py" = ["E402"]
# Allow late imports in tests (for test fixtures)
"**/tests/**/*.py" = ["E402"]
[tool.mypy]
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
[[tool.mypy.overrides]]
module = "re2"
ignore_missing_imports = true
# Semantic Release Configuration
[tool.semantic_release]
version_toml = [
"pyproject.toml:project.version",
"models/pyproject.toml:project.version",
"engine/pyproject.toml:project.version",
"sdks/python/pyproject.toml:project.version",
"server/pyproject.toml:project.version",
"evaluators/builtin/pyproject.toml:project.version",
"evaluators/contrib/galileo/pyproject.toml:project.version",
]
version_source = "tag"
commit_message = "chore(release): v{version}"
tag_format = "v{version}"
[tool.semantic_release.commit_parser_options]
# feat = minor, fix/perf/refactor = patch, breaking (!) = major
allowed_tags = ["feat", "fix", "perf", "chore", "docs", "style", "refactor", "test", "ci"]
patch_tags = ["fix", "perf", "chore", "refactor"]