feat(outbound): A2A server + Vercel deploy for Bio marketplace - #467
Open
bioanywhere wants to merge 1 commit into
Open
feat(outbound): A2A server + Vercel deploy for Bio marketplace#467bioanywhere wants to merge 1 commit into
bioanywhere wants to merge 1 commit into
Conversation
Adds a complete local-tunnel architecture so the Outbound agent
is reachable from the Bio marketplace (and any A2A-compatible caller)
while running on the user's machine with full access to local
Composio integrations.
What's new
----------
store/agents/outbound/server/
index.js — Express server + Claude agent loop (bash/read/write tools)
launch.ps1 — One-click launcher: kills port, starts server, starts
Cloudflare Tunnel, captures URL, updates Vercel, redeploys
start.bat — Double-click entry point (calls launch.ps1)
update-tunnel.js — Updates LOCAL_AGENT_URL env var on Vercel and redeploys
package.json — express, @anthropic-ai/sdk
README.md — Full architecture docs, setup guide, troubleshooting
store/agents/outbound/deploy/
api/index.js — Vercel serverless forwarder (reads LOCAL_AGENT_URL, proxies)
.well-known/agent-card.json — A2A-spec agent card for Bio health checks
index.html — Human-readable landing page
vercel.json — CORS headers + project config
Also syncs latest CLAUDE.md and all 8 SKILL.md files from the
Workshop Bogotá run where this was developed and tested end-to-end.
Architecture
------------
Bio → Vercel (stable URL) → Cloudflare Tunnel → localhost:3001
→ Claude agent loop → Composio CLI → Apify / Airtable / Apollo / Instantly
The tunnel URL changes on each restart; launch.ps1 updates Vercel
automatically so Bio always has a valid endpoint.
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 this adds
A complete local-tunnel architecture so the Outbound agent can accept calls from the Bio marketplace and any A2A-compatible caller — while still running on the user's machine with full access to their locally configured Composio integrations (Apify, Airtable, Apollo, Instantly).
New files
store/agents/outbound/server/index.jsbash,read_file,write_filetools so Claude can follow SKILL.md procedures and call Composio CLI exactly as it does interactively in Houston.launch.ps1trycloudflare.comURL, then updates the Vercel env var and redeploys — all automatically.start.batlaunch.ps1).update-tunnel.jsLOCAL_AGENT_URLon the Vercel project and triggers a redeploy each time the tunnel URL changes.package.jsonexpress,@anthropic-ai/sdk.README.mdstore/agents/outbound/deploy/api/index.jsLOCAL_AGENT_URLenv var, proxies the A2A POST to the local server. Returns a 503 with a clear message if the tunnel is down..well-known/agent-card.jsonindex.htmlvercel.jsonArchitecture
Why local tunnel instead of a cloud server
The LinkedIn outreach pipeline takes 30–60 minutes — well beyond Vercel's 300s function timeout. A cloud server would also require re-configuring all Composio integrations server-side. The tunnel approach keeps the agent running on the user's machine with zero credential duplication.
Tested on
ok✓Also synced
Latest
CLAUDE.mdand all 8SKILL.mdfiles from the Workshop Bogotá session where this was developed and tested.