pgx
PGX — Lightweight Postgres for AI agents. Written in Rust. Thousands of isolated databases in one runtime. 🐘
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
An MLB odds line-shopping tool: pick a price range with a slider and see every US-legal sportsbook currently quoting a line in that range, alongside each team/side's rolling historical hit rate and two side-by-side EV estimates (de-vigged market consensus vs. historical hit rate).
Research/discovery tool only in v1 — no bet placement or tracking.
See /home/codespace/.claude/plans/sequential-moseying-treehouse.md (or ask Claude) for the full design rationale and milestone plan.查看完整 README ↗A multi-sport odds and props app: every price at every book next to ARCHR's own model, for NBA, NFL, UFC, MLB, soccer, tennis and F1.
/models.It's a research tool: it doesn't place bets.
| Path | What |
|---|---|
/ | Home: today across every sport |
/slate | The odds Slate: every game, every market, best price vs ARCHR |
/nba, /nfl, /mlb, /ufc, /f1 | Sport pages (boards, game/bout pages) |
/nba/props, /nfl/props, /mlb/props, /ufc/props | Player and fighter props |
/sports, /sports/<sport>, /sports/<sport>/props | The all-sports engine: soccer, tennis and every other league the feeds carry, with soccer and tennis props |
/models | Model report cards |
/api/cron/* | Background jobs (bearer CRON_SECRET) |
/api/health, /api/status | DB connectivity; job freshness and compute budget |
Design notes live in docs/architecture/. Start with operations.md (schedule, compute budget), MODEL-FRAMEWORK.md, and the per-sport props docs (nba-props.md, NFL-ADVANCED.md, MLB-PROPS.md, SOCCER-PROPS.md, TENNIS-PROPS.md, UFC-PROPS.md).
src/generated/prisma; import it from @/generated/prisma/client.Data sources:
Requires Docker (for local Postgres). Odds keys are optional: without one, the app still runs on ESPN's free lines, and ARCHR's own prices still show.
cp .env.example .env # every variable, with what it does; fill in what you need
docker compose up -d # local Postgres on :5432
npx prisma migrate dev # apply the schema
npm run dev # http://localhost:3000
npm run lint # eslint
npm run typecheck # tsc --noEmit
npm test # vitest
npm run build # production build
npx prisma studio # browse the local DB
Run any job locally with curl -H "Authorization: Bearer $CRON_SECRET" localhost:3000/api/cron/<job>.
Vercel Cron runs one route, /api/cron/tick, about 20 times a day. Each tick wakes the database once and runs every job that's due, by its own cadence or at fixed hours: odds, fixtures, results, box scores, history imports, grading and the Discord posts. The schedule lives in src/lib/ops/schedule.ts.
Pages also refresh the data behind them when it's stale. Viewing a page wakes the database anyway, so this costs nothing extra.
Why it's built this way: the production database is billed by the hours it's awake. See docs/architecture/operations.md.
GitHub Actions call the same /api/cron/* routes. They're manual, except the weekly Model Lab:
model-lab.yml: weekly (Monday), plus manual. Runs the backtests and fits against production, and saves the report cards behind /models.sync-free.yml: health check plus a one-off refresh.backfill-history.yml, all-sports-fill.yml: one-time history fills.poll-odds*.yml, poll-player-props.yml: on-demand odds polls. These spend credits.fire-card.yml, results-tick.yml: post the Discord card or recap now.reset-ledger.yml: wipes the results ledger. Destructive.ops-status.yml: read-only status.ci.yml: lint, typecheck, tests, build.The workflows need two repo secrets (Settings → Secrets and variables → Actions): APP_URL (the deployed base URL) and CRON_SECRET (the same value as the deployment's). Model Lab also needs DATABASE_URL.