-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
45 lines (42 loc) · 2.18 KB
/
Copy pathpyproject.toml
File metadata and controls
45 lines (42 loc) · 2.18 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
# Top-level uv workspace for the agent-kit monorepo.
#
# Purpose: give the repo a single, unified ``uv.lock`` spanning the internal
# libraries (``agent-config-kit``, ``witan-core``), the two MCP servers
# (``witan-council``, ``witan-code``), and the ``ol-agent-kit`` meta-package, so
# a container build can ``uv sync --frozen`` the whole set reproducibly in one
# resolution (see ``docker/witan.Dockerfile``).
#
# This is a *virtual* workspace root: it declares no package of its own, it only
# groups the members. Each member keeps its own ``pyproject.toml``, version,
# publish flow, and ``[tool.uv.sources]`` path entries, so a standalone
# ``uvx --from git+https://github.com/mitodl/agent-kit#subdirectory=mcp/servers/witan``
# install and an in-member ``uv sync`` keep working exactly as before — uv simply
# recognizes those sibling paths as workspace members when it resolves from here.
[tool.uv]
# Resolve to fastmcp 4.0.0b1 while 4.0 is still in beta (PyPI: 3.4.5 is the
# latest stable). FastMCP 4 is where MCP 2026-07-28 lands — sessionless protocol
# era, MRTR, the io.modelcontextprotocol/tasks extension — so our own lock and
# the container image built from it (docker/witan.Dockerfile) run on 4.x now,
# while the members' published ranges stay `>=3.4.2,<5` so a plain
# `pip install witan-council` still resolves 3.4.5. The whole suite passes on
# both; drop this setting once 4.0 GA ships.
#
# Needed even though nothing asks for a pre-release loosely: fastmcp pins
# `fastmcp-slim==<same version>`, and that transitive pre-release is not covered
# by an exact top-level pin, so resolution fails without it.
prerelease = "allow"
[tool.ruff]
# Every member declares `requires-python = ">=3.11"`, but ruff only infers a
# target version from the closest pyproject.toml that *contains* a [tool.ruff]
# table — and none did, so it fell back to its py39 default and flagged 3.11
# builtins (`ExceptionGroup`, `BaseExceptionGroup`) as undefined names. This
# table is that anchor; it changes no rule selection.
target-version = "py311"
[tool.uv.workspace]
members = [
"packages/agent-config-kit",
"packages/agent-kit",
"packages/witan-core",
"mcp/servers/witan",
"mcp/servers/witan-code",
]