Skip to content

PayPal sandbox only. No real money moves.

ReferenceReference

Architecture

Seven packages in one strict TypeScript monorepo, and the dependency rule between them.

Verifiedbacked by a real run or committed evidence

Page last changed 7 Nov 2026 (from the git history)

PackagePurpose
packages/sharedMoney in integer cents, ids, wire types, replay bundle format
packages/enginePure auction core and hash-chained ledger
packages/paymentsHold service, settlement saga, webhook verification, fake PayPal, gate scripts
packages/voiceAudio capture, speech-to-text clients, bid parser, decision step
packages/serverSingle-process host: HTTP routes, room runtime, settlement scheduling, file stores
packages/e2eScenario DSL, runner and end-to-end specs
packages/webBrowser client (React and Vite)

Money is always integer cents. The dependency rules are enforced in CI by dependency-cruiser and an engine purity check.

Where the pieces mount

packages/server/src/boot/compose.ts mounts the room WebSocket gateway and the /audio voice socket, which feeds each decision into the room. The speech provider is cached transcripts unless VOICE_STT names a live provider with its key.

Edit on GitHub

Last updated on