AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Live at texprs.com.
View the compiled PDF of a LaTeX pull request on GitHub, and compare it with the
base branch, without checking out the branch.
Swap github.com for texprs.com in any PR link:
Planned views: side by side (synced scrolling), overlay/flicker, and a
latexdiff PDF with changes marked up.
LaTeX can't compile on Vercel (no TeX Live, function size limits), so compiling
lives in the worker container.
Needs Node 22+ and Docker.
1. Build and start the worker (first build takes ~5 min):查看完整 README ↗Live at texprs.com.
View the compiled PDF of a LaTeX pull request on GitHub, and compare it with the base branch, without checking out the branch.
Swap github.com for texprs.com in any PR link:
github.com/owner/repo/pull/12 → texprs.com/owner/repo/pull/12
Planned views: side by side (synced scrolling), overlay/flicker, and a latexdiff PDF with changes marked up.
| Path | What it is | Runs on |
|---|---|---|
apps/web | Next.js app: PR pages, GitHub login, PDF viewer | Vercel |
apps/worker | Compile service: TeX Live, latexmk, latexdiff | Docker (Fly.io or Cloud Run) |
packages/shared | Types shared by web and worker | — |
LaTeX can't compile on Vercel (no TeX Live, function size limits), so compiling lives in the worker container.
Needs Node 22+ and Docker.
Build and start the worker (first build takes ~5 min):
docker build -f apps/worker/Dockerfile -t texpr-worker .
docker run -p 8080:8080 -e WORKER_SECRET=devsecret texpr-worker
Copy apps/web/.env.example to apps/web/.env.local and fill it in
(GitHub OAuth app, a SESSION_SECRET, and WORKER_SECRET=devsecret).
Start the site:
npm install
npm run dev:web # http://localhost:3000
Open any LaTeX PR, e.g. http://localhost:3000/owner/repo/pull/12
Checks: npm run typecheck, npm run lint, npm run build, and
npm run selftest -w @texpr/worker (compiles the fixtures inside the image).
.tex files and picks the one the PR changes.Repos with an unusual layout can name their documents in .texpr.json:
{ "main": "paper/main.tex" } or { "main": ["a.tex", "b.tex"] }.
GET /pdf?t=<ticket> is what browsers use (see PdfTicket in packages/shared).
The other routes, except /health, need Authorization: Bearer $WORKER_SECRET. Pass the
user's GitHub token (for private repos) as X-GitHub-Token.
| Route | Body | Returns |
|---|---|---|
POST /build | { revision: { owner, repo, sha }, mainFile } | the compiled PDF |
POST /diff | { base, head, mainFile } | latexdiff PDF (changes in red/blue) |
Errors are JSON { error, message, log? } (see packages/shared). Results are
cached by commit SHA; access to the repo is re-checked on every request, cache
hits included.
Repos are untrusted input. Each compile:
.. are allowed, since templates like McMaster's capstone one use \input{../Common.text})latexmkrc (-norc, and the files are deleted), and symlinks are deleted after unpackingtest/fixtures/evil* check these in CI.
Checks: npm run typecheck, npm run lint, npm run build.