feat: eve demos runnable via Watt and @platformatic/eve - #3
Merged
Conversation
mcollina
force-pushed
the
demos/watt-eve-examples
branch
2 times, most recently
from
July 9, 2026 13:46
ef6ba09 to
4f76e11
Compare
Add demos/ with two example eve agents wired to boot under Platformatic Watt through the @platformatic/eve capability: - weather-assistant: the eve quickstart (one agent, one get_weather tool), adapted from vercel/eve's apps/fixtures/weather-agent. - real-estate-agent: a sales assistant with listing/booking tools over a shared in-memory store and a cron "viewings today" digest schedule. The demos are pnpm workspace members (packages: demos/*) but link the capability via file:../.. (not workspace:*): each carries a pnpm-workspace.yaml that pins eve's dev-runtime source root to the demo, which also roots pnpm when run from the demo dir, so a workspace: spec would not resolve there. The root pnpm-lock.yaml is the single source of truth; demo-level lockfiles are gitignored. Models resolve to AI Gateway or a direct provider when a key is present, and fall back to eve's mockModel() so the demos run offline. The demos are standalone example apps, so they are excluded from the library ESLint config (alongside external/ and eve-old/). Also fixes a pre-existing prettier error in src/capability.ts that was already failing CI on main. Documented in demos/README.md and each demo README; CLAUDE.md and AGENTS.md capture the build/run flow and the source-root marker landmine. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Axq9LHWsGVYphZvWeqhJmp
mcollina
force-pushed
the
demos/watt-eve-examples
branch
from
July 9, 2026 14:03
4f76e11 to
d39adea
Compare
ShogunPanda
approved these changes
Jul 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a
demos/directory with two example eve agents, wired to boot under Platformatic Watt through the@platformatic/evecapability instead of on Vercel.weather-assistantget_weathertool. Smallest thing that proves the Watt + capability wiring end to end. Adapted from upstreamvercel/eveapps/fixtures/weather-agent.real-estate-agentdaily_viewings_digestschedule. Original reconstruction of the scenario from Vercel's launch blog.Each demo is a Watt app (
watt.json→module: @platformatic/eve) authored against the realeve@0.20.0API (defineAgent,defineTool,defineSchedule,eveChannel).How it's wired
file:link. The demos are registered underpackages: demos/*in the rootpnpm-workspace.yaml, so onepnpm installat the repo root installs them. They depend on@platformatic/evevia"file:../.."(notworkspace:*).pnpm-workspace.yamlmarker. Inwattpm dev, eve snapshots its "source root" (nearest ancestor with.git/pnpm-workspace.yaml). Because the demos live inside this repo, each carries its ownpnpm-workspace.yamlto pin eve's source root to the demo — without it, eve roots at the repo andcp-fails copying the tree into<demo>/.eve/. pnpm also treats that nested file as a root when you runpnpmfrom the demo dir, which is exactly why the capability is linked viafile:and notworkspace:*(the latter would be unresolvable in that rooting). The marker also carriesallowBuildsso the install doesn't fail on ignored native build scripts. Recorded as a landmine inAGENTS.md.ANTHROPIC_API_KEY/OPENAI_API_KEY→ that provider directly (lazy@ai-sdk/*import); elsemockModel()fromeve/evals. So the demos run offline with zero credentials and upgrade to a real model when a key is set. Vercel AI Gateway is not required.Run
Verified
Both demos were booted under Watt via
pnpm devand driven end to end:get_weather{city:"Brooklyn"}→ "It's Windy and about 60°F in Brooklyn right now."search_listings{neighborhood, maxPriceUSD:1500000}→ the matching listing; "viewings today?" →list_client_viewings→ the seeded schedule.Capability typecheck and both demo typechecks are clean. No changes to the capability's
src/.🤖 Generated with Claude Code
https://claude.ai/code/session_01Axq9LHWsGVYphZvWeqhJmp