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