Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
104 lines (90 loc) · 3.1 KB
/
Copy pathpyproject.toml
File metadata and controls
104 lines (90 loc) · 3.1 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
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "agent-proxy"
version = "0.1.0"
description = "Observation, trajectory collection, and data-processing plane for the agentic operations stack."
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}
authors = [
{name = "Kai Ase Siren"}
]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
dependencies = [
"fastapi>=0.115.0",
"pydantic>=2.9.0",
"pydantic-settings>=2.4.0",
"hypercorn>=0.17.0",
"httpx>=0.27.0",
"opentelemetry-api>=1.25.0",
"opentelemetry-sdk>=1.25.0",
"opentelemetry-exporter-otlp-proto-http>=1.25.0",
"opentelemetry-instrumentation-fastapi>=0.48b0",
"opentelemetry-instrumentation-httpx>=0.46b0",
"structlog>=24.0.0",
"prometheus-client>=0.20.0",
"tiktoken>=0.7.0",
"mcp>=1.27,<2",
"sentry-sdk[fastapi]>=2.0,<3",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0",
"pytest-asyncio>=0.23",
"black>=23.0",
"ruff>=0.1",
"mypy>=1.0",
"uvicorn>=0.30.0",
]
[project.scripts]
agent-proxy = "app.main:main"
agent-proxy-query = "app.trajectory.query:main"
[project.urls]
"Homepage" = "https://github.com/coilyco/agent-proxy"
[tool.setuptools.packages.find]
include = ["app*"]
[tool.pytest.ini_options]
# The async test cases (queue worker, upstream dispatch, resilience loop) use
# bare `async def` with no per-test marker, so auto mode is what makes them run
# instead of being skipped.
asyncio_mode = "auto"
# The declared dev tools are gated in CI (.github/workflows/ci.yml). These three
# blocks are the single source of truth the gate reads, so `uv run black --check .`,
# `uv run ruff check .`, and `uv run mypy app` behave identically in CI and locally.
[tool.black]
line-length = 100
target-version = ["py310", "py311", "py312"]
[tool.ruff]
line-length = 100
[tool.mypy]
# Pin to the declared floor so the gate flags any 3.11+-only usage that a newer
# local interpreter would silently accept.
python_version = "3.10"
# boto3 (config.py SSM fallback) is an optional, lazily-imported dep with no
# bundled stubs; missing it is expected on a lean CI runner and must not fail
# the type gate.
[[tool.mypy.overrides]]
module = ["boto3"]
ignore_missing_imports = true
[tool.agentic-os.repo-pointer-skills]
org = "coilyco"
# .pre-commit-config.yaml is generated by apply-agentic-os-hooks.py, whose BEGIN
# and END markers are how it finds its own block. That exemption is permanent.
# The agent-proxy#89 backlog is cleared, so nothing else is exempt.
[tool.agentic-os.code-comments]
excludes = [
".pre-commit-config.yaml",
]
[tool.agentic-os.documentation-layout]
# Large, not small. This is the estate's model transport layer, and its docs
# total 159k chars: 20 docs at the small cap could not hold a quarter of that.
# Every individual doc already passes the large per-file cap, so the only work
# left is the doc count. A sweep stamped small fleet-wide during the
# agentic-os#1108 rollout; Kai re-picked per repo.
band = "large"