A uv-workspace monorepo of the shared Python libraries that Foundry-built
agents install and extend. Each package is independently versioned and
ships as a wheel attached to a GitHub Release; adopters host the wheels
in their own internal index. Composition roots like strands-base-agent
wire these libraries into a runnable service — they do not re-implement
what lives here.
| Package | Purpose | Depends on |
|---|---|---|
foundry-agent-core |
DI container, protocols, types, exceptions, lifecycle | (none) |
foundry-agent-config |
YAML loader with env-var overrides, bounded input controls | (none) |
foundry-agent-fastapi |
CORS / error / logging middleware, request models, health router | foundry-agent-core |
foundry-strands-agent |
AWS Strands SDK adapter — backend, factory, orchestrator, tool loader | foundry-agent-core, foundry-agent-config |
foundry-agent-core ◄── foundry-agent-fastapi
▲
├──────────────── foundry-strands-agent
│ ▲
foundry-agent-config ───────────┘
just setup # uv sync + pre-commit install
just check # ruff + bandit narrow set + format check + basedpyright
just test # full test suite across all packagesPer-package commands:
just test-pkg foundry-agent-core # test a single package
just check-pkg foundry-agent-core # lint + format + type-check + test, one package
just build foundry-agent-core # build a single wheel| If you want to… | Read |
|---|---|
| Install the workspace and build a wheel | Quickstart |
| Run the daily developer loop | Local development |
| Understand the codebase (layout, packages, conventions) | AGENTS.md |
| See per-package summaries | Packages |
| Consume these packages from a downstream repo | Adopting |
| Understand the security posture and STIG checklists | Each package's security/stig_checklist.json |
| Contribute changes | CONTRIBUTING.md |
Releases ship as GitHub Releases — adopters host the wheels in their own internal index (no public PyPI yet).
- PRs to
develop→ CI runs (lint, type-check, test, dry-run build, bandit narrow set) - PRs to
main→ release validation runs - Tag a release on
main→ builds wheels + Syft SBOM + Grype scan per changed package and attaches them to the GitHub Release
See docs/foundry/releases/release-channels.md for internal RC/dev publishing and docs/foundry/releases/adopting.md for the adopter flow.