Inspiration
After 19 years in procurement, I watched buyers drown in emailed quotes and spreadsheets while suppliers waited on approvals and payment. I built Vireo so one workspace could take a request all the way to payment, with people still making every decision. This hackathon entry proves the core rule with real money rails: agents can haggle inside limits a human sets, but only a human’s Approve click starts payment on PayPal.
What it does
A buyer sets simple bounds (price ceiling, delivery date, warranty). Chime (the procurement workspace agent) and a supplier agent negotiate inside those bounds. The human reviews the deal and clicks Approve, that click creates a PayPal Sandbox order (authorize then capture on receipt). Every step lands in an audit ledger. Nothing outside the human’s limits can be accepted.
How we built it
Deterministic code runs the negotiation and enforces every number; Muse Spark only voices the dialogue (with template fallback). Human Approve is the only event that can create a PayPal order or ledger row. Staging-only Supabase tables + a PayPal adapter handle authorize, capture, and webhook reconciliation. All demo data is synthetic.
Challenges we ran into
- The “never initiate payment” rule almost blocked the concept; we made the human Approve click the structural initiation event instead.
- Toolchain and environment friction (Windows native deps, shadowed .env) ate time we solved with small, documented fixes.
Accomplishments that we're proud of
- End-to-end live path: bounded haggle → human Approve → PayPal Sandbox authorize/capture → reconciled ledger.
- Models can talk; only code can accept a deal or touch money.
- Proven on free-tier services with real Sandbox money flow and synthetic data only.
What we learned
Constraints (staging-only, human initiation, deterministic bounds) removed more risk than they added. Git history is a reliable resume button. AI earns trust fastest when it can speak but cannot spend.
What's next for Vireo
- Ship the negotiator behind a feature flag in the main Vireo product.
- Add supplier-side agents so real vendors can counter-offer inside the same bounded protocol.
- Expand PayPal (and other licensed rails) as client-chosen payout providers. Vireo never holds funds.
Built With
- ag-grid
- clerk
- drizzle-orm
- express.js
- meta
- models
- muse
- node.js
- particle
- paypal-sandbox
- pnpm
- radix-ui
- react
- render
- supabase
- tailwind-css
- typescript
- vite
- wonder