-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
99 lines (85 loc) · 3.7 KB
/
pyproject.toml
File metadata and controls
99 lines (85 loc) · 3.7 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
[build-system]
requires = ["setuptools>=61", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "acp-relay"
version = "2.1.0"
description = "Agent Communication Protocol (ACP) — P2P relay for Agent-to-Agent communication"
readme = "README.md"
license = { text = "Apache-2.0" }
requires-python = ">=3.10"
authors = [
{ name = "ACP Community" }
]
keywords = ["agent", "acp", "p2p", "llm", "multi-agent", "communication", "protocol"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Internet :: WWW/HTTP",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: OS Independent",
"Typing :: Typed",
]
# ── Core dependencies ─────────────────────────────────────────────────────────
# acp_relay.py itself only needs websockets.
# The Python SDK client (sdk/python) is stdlib-only.
dependencies = [
"websockets>=12.0",
]
[project.optional-dependencies]
# Optional: Ed25519 identity signing (--identity flag)
identity = ["cryptography>=42.0"]
# Development / testing
dev = [
"pytest>=7.4",
"pytest-asyncio>=0.23",
"httpx>=0.27", # for integration tests against live relay
"h2>=4.0", # for test_http2_transport.py h2c scenarios
]
# Full install (relay + SDK + identity)
full = [
"websockets>=12.0",
"cryptography>=42.0",
]
[project.urls]
Homepage = "https://github.com/Kickflip73/agent-communication-protocol"
Repository = "https://github.com/Kickflip73/agent-communication-protocol"
Documentation = "https://github.com/Kickflip73/agent-communication-protocol/blob/main/docs/integration-guide.md"
Changelog = "https://github.com/Kickflip73/agent-communication-protocol/blob/main/CHANGELOG.md"
"Bug Tracker" = "https://github.com/Kickflip73/agent-communication-protocol/issues"
[project.scripts]
# `acp-relay` CLI entry-point — runs acp_relay.py main()
acp-relay = "acp_relay:main"
# ── Package discovery ─────────────────────────────────────────────────────────
# acp_relay.py is a single-file module in relay/.
# We use package-dir to map the root search path to relay/ so setuptools finds it.
# The SDK packages (acp_sdk) live in sdk/python/ and are listed explicitly.
[tool.setuptools]
py-modules = ["acp_relay"]
[tool.setuptools.package-dir]
# Map "acp_relay" module root to relay/
"" = "relay"
[tool.setuptools.packages.find]
where = ["relay"]
[tool.setuptools.package-data]
"*" = ["py.typed"]
# ── Pytest ─────────────────────────────────────────────────────────────────────
[tool.pytest.ini_options]
testpaths = ["tests", "sdk/python/tests"]
asyncio_mode = "auto"
timeout = 90
markers = [
"p2p: requires P2P WebSocket connectivity with a public IP (skipped in sandbox by default; pass --with-p2p to enable)",
]
# ── Ruff (linting, optional) ───────────────────────────────────────────────────
[tool.ruff]
target-version = "py310"
line-length = 100
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = ["E501"] # line length handled by formatter