Tavotto
AI drew your research figure. Tavotto makes it publication-ready: edit matplotlib figures on a canvas, lay out in mm, check journal rules. Free, open source.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证SYNKAI multiplayer canvas with multi-model AI blocks
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Multiplayer canvas (Vite + React + Liveblocks) with multi-model AI blocks, plus an
orchestration & memory backend (Express + Supabase) for sequential multi-agent handoffs.
Open http://localhost:5173 — keys live in .env.local (VITE_LIVEBLOCKS_PUBLIC_KEY, GEMINI_API_KEY, GROQ_API_KEY).
The backend under backend/ routes work across pluggable AI agents and logs shared
team memory in Postgres (Supabase). It does not replace the canvas AI Block /api/run
path — that stays on Vercel for in-canvas Gemini/Groq runs.
In the Supabase SQL editor (or CLI), run in order:查看完整 README ↗Multiplayer canvas (Vite + React + Liveblocks) with multi-model AI blocks, plus an orchestration & memory backend (Express + Supabase) for sequential multi-agent handoffs.
npm install
npm run dev
Open http://localhost:5173 — keys live in .env.local (VITE_LIVEBLOCKS_PUBLIC_KEY, GEMINI_API_KEY, GROQ_API_KEY).
The backend under backend/ routes work across pluggable AI agents and logs shared
team memory in Postgres (Supabase). It does not replace the canvas AI Block /api/run
path — that stays on Vercel for in-canvas Gemini/Groq runs.
In the Supabase SQL editor (or CLI), run in order:
supabase/migrations/001_workspaces.sqlsupabase/migrations/002_orchestration.sqlConfirm tables exist: workspaces, agents, memory_events, orchestration_runs, orchestration_steps.
Copy backend/.env.example → backend/.env and fill:
SUPABASE_URLSUPABASE_SERVICE_ROLE_KEY (preferred for server inserts)ANTHROPIC_API_KEYGEMINI_API_KEY (can reuse the same key as the frontend)The server also loads the repo-root .env.local if present.
Optional: GEMINI_MODEL if your key rejects gemini-2.0-flash (e.g. set gemini-3.6-flash).
cd backend
npm install
npm run dev
API: http://localhost:3001 — health check: GET /health
cd backend
npm run seed
# or: npm run seed -- <existing-workspace-uuid>
This registers three agents:
| Agent | Provider | Role |
|---|---|---|
story-writer | Anthropic (Claude) | Brief → user stories |
design-drafter | Gemini | Stories → wireframe description |
dev-scaffolder | Anthropic (Claude) | Wireframe → React component breakdown |
The script prints the workspaceId and three agent IDs.
curl -X POST http://localhost:3001/api/orchestrate \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "<demo-workspace-id>",
"agentIds": ["<story-writer-id>", "<design-drafter-id>", "<dev-scaffolder-id>"],
"triggerContent": "Users need a faster mobile checkout flow"
}'
Expected: one brief → three sequential handoffs (Claude → Gemini → Claude). Each step’s
output is logged to memory_events and returned in the JSON steps array.
| Method | Path | Purpose |
|---|---|---|
POST | /api/agents | Register an agent |
GET | /api/agents/:workspaceId | List agents |
POST | /api/orchestrate | Run an agent chain |
GET | /api/memory/:workspaceId | Team memory summary |
POST | /api/generate-stories | Convenience single-agent endpoint (migrated to orchestrator.runAgent) |
api/run.ts # Vercel serverless — canvas AI Block Gemini/Groq
server/runAi.ts # Shared canvas AI helpers
backend/ # Express orchestration + memory layer
supabase/migrations/ # Postgres schema for agents & memory
src/ # React canvas (Liveblocks) — do not confuse with backend