How this framework stays current
Vibes is deliberately modeled on Pydantic AI. As Pydantic AI evolves - adding new features, fixing bugs, refining its API - Vibes tracks those changes and ports the relevant ones to TypeScript. This process is automated.The update pipeline
A GitHub Actions workflow runs every day at 9am UTC. It checks whether a new version ofpydantic-ai has been published to PyPI. If one has, and no open issue already exists for that version, it:
- Fetches the release notes from the Pydantic AI GitHub release
- Diffs the changed files between the old and new tags to identify what actually changed
- Highlights the relevant files - agent logic, tool handling, result validators, streaming, MCP, graph - the parts that map to Vibes concepts
- Opens a GitHub Issue with the full porting checklist and assigns it to the GitHub Copilot coding agent via GraphQL
- Copilot opens exactly one PR referencing the issue, using
.claude/vibes-pydantic-porting.mdas its porting guide - Merging the PR closes the issue automatically — no manual cleanup needed
The workflow requires a fine-grained PAT stored as
VIBES_GH_PAT with Actions, Contents, Issues, and Pull requests read/write permissions scoped to this repository. This is needed because GITHUB_TOKEN cannot assign the Copilot coding agent.What gets ported
Not everything in a Pydantic AI release is relevant to Vibes. The porting guide categorises each change as:| Category | Action |
|---|---|
| New agent framework feature | Port to TypeScript - new file in packages/sdk/lib/, exported from mod.ts, documented |
| Breaking API change | Update Vibes equivalent, add migration note to changelog |
| Bug fix | Port if the same bug could exist in Vibes |
| Python-only concern | Skip - noted as “not applicable” in the PR |
| Dependency / tooling | Skip |
What gets skipped
Some Pydantic AI features have no direct TypeScript equivalent and are intentionally not ported:- Python-specific runtime concerns (asyncio internals,
__init__.pyorganisation) - Features already covered by the Vercel AI SDK (provider integrations, tokenisation)
- Pydantic-specific validation patterns (replaced by Zod in Vibes)
The porting guide
The file.claude/vibes-pydantic-porting.md in this repository is the canonical reference for how Pydantic AI Python concepts map to Vibes TypeScript equivalents. It covers:
- Framework structure and file locations
- How
RunContext[Deps]maps toRunContext<TDeps> - How Pydantic validators map to Zod schemas
- Streaming patterns (asyncio generators → AI SDK streams)
- Testing patterns (
TestModel,FunctionModel) - MCP, graph workflows, and multi-agent patterns
Tracking a specific release
The currently tracked version of Pydantic AI is stored in.github/pydantic-ai-version.txt. To check what version Vibes is currently aligned with:
pydantic-ai-update label.