octoturge 401c65762b Fix bun-types resolution; fix possibly-undefined health-check row
Same bun-types-vs-@types/bun fix as continuum-common. Also fixes a real
noUncheckedIndexedAccess violation in the /health route: db.execute()'s
result is T[], so rows[0] is 'T | undefined', not T — destructuring assumed
it always existed. Verified with a clean 'bunx tsc --noEmit'.
2026-08-28 18:28:06 +00:00

continuum-backend

Cloud control plane for Continuum. Bun + ElysiaJS, PostgreSQL (via pgCat/PgBouncer, with pgvector for frame embeddings), Redis Streams, and Cloudflare R2 storage.

Run

bun install
cp .env.example .env   # fill in DATABASE_URL, REDIS_URL, R2_*, SUPABASE_JWT_SECRET
bun run db:generate && bun run db:migrate
bun run dev

Layout

  • src/db/ — Drizzle schema (printers, farms, print_jobs, frame_embeddings) and client, pointed at pgCat. src/db/validators.ts derives Elysia/TypeBox request validators straight from the Drizzle tables via drizzle-typebox, so the Postgres schema and the API validators come from one definition instead of two hand-synced ones.
  • src/s3/ — R2 presigned URL helpers (PUT for client uploads, GET for the edge proxy).
  • src/queue/ — Redis client + XADD helper pushing onto stream:camera_frames for continuum-ai-worker.
  • src/routes//auth, /farms, /printers, /jobs, and the edge-gateway WebSocket at /ws/edge/v1.

frame_embeddings.embedding requires the vector extension: CREATE EXTENSION IF NOT EXISTS vector;

S
Description
Continuum platform: continuum-backend
Readme 58 KiB
Languages
TypeScript 100%