8051b78647
Closes the last item on this agent's backlog. A reference about to be reordered is not a reference to discontinue, and the catalog's own quantity field does not say whether it is — that is the supply agent's decision, and it answers rather than handing back its stock table. One narrow tool, not a generic call_agent(name, text): a generic one lets the model reach any peer with any prompt, which is how an agent becomes a proxy onto its neighbours. The peer's token is minted per call for that peer alone, so an injection that talks this agent into consulting the wrong one fails at the realm. A peer ending in any state but completed is reported as such, never smoothed over: a specialist that escalated has not answered, and presenting its escalation as an answer is how a refusal turns into a fact. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.6 KiB
TOML
43 lines
1.6 KiB
TOML
[project]
|
|
name = "classic-models-agent-catalogue"
|
|
version = "0.3.0"
|
|
description = "Product management agent for the Classic Models catalog domain"
|
|
requires-python = ">=3.12"
|
|
|
|
# Pinned to what was current on 2026-08-28 and resolved together in one
|
|
# environment. Ranges rather than exact pins so patch-level security fixes are
|
|
# picked up, capped below the next major so an upgrade is a deliberate act.
|
|
dependencies = [
|
|
# The A2A facade. The official SDK rather than FastA2A: this estate exists
|
|
# to prove A2A interoperability across five runtimes, so the reference
|
|
# implementation is the safer base for the others to interoperate with.
|
|
"a2a-sdk[http-server]>=1.1.2,<2",
|
|
# Reasoning and tool calling. -slim keeps the dependency surface to the
|
|
# providers actually used; [openai] because the LLM endpoint speaks the
|
|
# OpenAI protocol, [mcp] for the MCP client.
|
|
"pydantic-ai-slim[openai,mcp]>=2.35.3,<3",
|
|
"httpx2>=2.12.0,<3",
|
|
# httpx 0.x as well, and not redundantly: fastmcp builds its own
|
|
# transport client and hands us an httpx.AsyncClient to configure.
|
|
"httpx>=0.28.1,<1",
|
|
"pydantic-settings>=2.7",
|
|
# pydantic_ai.retries ships in pydantic-ai-slim but imports tenacity,
|
|
# which the slim extras do not pull. Needed for the LLM gateway's 429s.
|
|
"tenacity>=9.1,<10",
|
|
"uvicorn>=0.52.4",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8", "pytest-asyncio>=0.24", "pydantic-evals>=2.35.3,<3"]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/catalogue_agent"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|