ReferenceReference
Architecture
Seven packages in one strict TypeScript monorepo, and the dependency rule between them.
| Package | Purpose |
|---|---|
packages/shared | Money in integer cents, ids, wire types, replay bundle format |
packages/engine | Pure auction core and hash-chained ledger |
packages/payments | Hold service, settlement saga, webhook verification, fake PayPal, gate scripts |
packages/voice | Audio capture, speech-to-text clients, bid parser, decision step |
packages/server | Single-process host: HTTP routes, room runtime, settlement scheduling, file stores |
packages/e2e | Scenario DSL, runner and end-to-end specs |
packages/web | Browser 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.
- docs/submission/ARCHITECTURE.mdthe full diagram and details
- packages/server/src/boot/compose.tswhere everything is wired
- .dependency-cruiser.cjsthe dependency rules
Edit on GitHub
Last updated on