-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
148 lines (134 loc) · 4.43 KB
/
Copy pathpyproject.toml
File metadata and controls
148 lines (134 loc) · 4.43 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
[build-system]
requires = ["hatchling>=1.26"]
build-backend = "hatchling.build"
[project]
name = "agent-runtime-kit"
version = "0.5.0"
description = "One typed runtime API for Claude, Codex, and Antigravity agent SDKs."
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
authors = [{ name = "Eloi Barti" }]
keywords = [
"agents",
"agent-runtime",
"agent-sdk",
"antigravity",
"async-python",
"claude",
"claude-code",
"codex",
"coding-agents",
"developer-tools",
"google-antigravity",
"mcp",
"openai-codex",
"runtime-api",
"sdk",
"typed-python",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Typing :: Typed",
]
dependencies = ["jsonschema>=4.18,<5"]
[project.optional-dependencies]
# Cautious upper bounds on the pre-1.0 vendor SDKs: they move fast and have shipped
# breaking changes within a minor series, so cap each at the next minor to protect
# already-installed users from a surprise vendor release. The sdk-evolution agent
# raises these deliberately after verifying a new version.
claude = ["claude-agent-sdk>=0.2.87,<0.3"]
# 0.1.0b3 floor: earlier betas pin a codex binary with no manylinux wheels,
# making the extra uninstallable on glibc Linux.
codex = ["openai-codex>=0.1.0b3,<0.2"]
antigravity = ["google-antigravity>=0.1.2,<0.2"]
all = [
"claude-agent-sdk>=0.2.87,<0.3",
"google-antigravity>=0.1.2,<0.2",
"openai-codex>=0.1.0b3,<0.2",
]
[project.urls]
Homepage = "https://github.com/ebarti/agent-runtime-kit"
Repository = "https://github.com/ebarti/agent-runtime-kit"
Issues = "https://github.com/ebarti/agent-runtime-kit/issues"
[dependency-groups]
dev = [
"build>=1.2",
"mypy>=1.8",
"pydantic>=2,<3",
"pytest>=8.0",
"pytest-asyncio>=0.23",
"pytest-cov>=5.0",
"ruff>=0.8",
"tomli>=2; python_version < '3.11'",
"types-jsonschema>=4.18",
]
[tool.uv]
# Supply-chain freshness delay: never resolve releases younger than 8 days, so a
# freshly compromised upload cannot reach the lockfile before the ecosystem has
# had time to notice. Committed here (not just a developer env var) so CI and
# every contributor resolve under the same policy and `uv sync --locked` agrees
# everywhere. The SDK-evolution agent strips env-level cutoffs for its refresh
# preview; this project-level floor still applies to what it may lock.
exclude-newer = "8 days"
# openai-codex-cli-bin ships per-platform binary wheels; require the platforms we
# develop and run CI on so resolution never locks a version missing one of them.
required-environments = [
"sys_platform == 'darwin' and platform_machine == 'arm64'",
"sys_platform == 'linux' and platform_machine == 'x86_64'",
]
# openai-codex pins exact pre-release builds of its CLI binary; the pre-release
# marker here opts that one package into pre-release resolution.
constraint-dependencies = ["openai-codex-cli-bin>=0.134.0a1"]
[tool.hatch.build.targets.wheel]
packages = ["src/agent_runtime_kit"]
[tool.hatch.build.targets.sdist]
include = [
"src",
"tests",
"examples",
"README.md",
"CHANGELOG.md",
"LICENSE",
"pyproject.toml",
"docs/api-stability.md",
"docs/capability-matrix.md",
"docs/live-smoke.md",
"docs/providers.md",
"docs/quickstart.md",
"docs/sdk-evolution-agent-design.md",
"docs/sdk-evolution-agent.md",
"docs/task-control.md",
]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
[tool.mypy]
python_version = "3.10"
packages = ["agent_runtime_kit"]
strict = true
warn_unused_configs = true
[[tool.mypy.overrides]]
module = ["claude_agent_sdk.*", "openai_codex.*", "google.antigravity.*"]
ignore_missing_imports = true
[tool.pytest.ini_options]
markers = [
"live: optional provider smoke tests that require explicit credentials and opt-in flags",
]
[tool.coverage.run]
source = ["agent_runtime_kit"]
branch = true
[tool.coverage.report]
show_missing = true
# Vendor-SDK import bodies in each adapter's _load_sdk are unreachable in the
# SDK-free CI lanes (adapters are exercised via injected fakes), so they are
# excluded with ``# pragma: no cover`` rather than dragging the floor down.
exclude_also = ["if TYPE_CHECKING:"]