ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证dojoburo repo
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A responsive 2D pixel-art web app: a startup office where a team of AI agents — each with a real startup function and its own skills — works at their desks with animated ASCII-art expressions on their heads. It's a game-like dashboard to orchestrate agents in a fun way (à la WorkAdventure), and every transaction settles on the XRP Ledger. 100% functional, no mock. The app talks directly to public XRPL nodes over WebSocket from the browser — no backend.查看完整 README ↗
A responsive 2D pixel-art web app: a startup office where a team of AI agents — each with a real startup function and its own skills — works at their desks with animated ASCII-art expressions on their heads. It's a game-like dashboard to orchestrate agents in a fun way (à la WorkAdventure), and every transaction settles on the XRP Ledger.
100% functional, no mock. The app talks directly to public XRPL nodes over WebSocket from the browser — no backend.
| Agent | Function | Department | Key skills |
|---|---|---|---|
| Ava | CEO — Orchestrator | Leadership | Daily standup, Set OKRs, Allocate budget (XRPL) |
| Rex | CTO — Engineering | Engineering | Ship a feature, Code review (x402) |
| Otto | DevOps — Infrastructure | Ops | Deploy to prod, Scale |
| Fin | CFO — Treasury | Finance | Open treasury, Pay agents, On-ledger audit |
| Mia | CMO — Marketing | Growth | Launch a campaign, Brand audit (x402) |
| Sol | Head of Sales | Growth | Close a deal, Get paid (x402) |
| Pia | Product Manager | Product | Write a spec, Prioritize the backlog |
| Dex | Lead Designer | Product | Produce a mockup, Design system (x402) |
| Ada | Data Analyst | Engineering | Weekly report, On-ledger analysis |
| Hana | People Ops — HR | People | Recruit an agent, Morale boost |
| Sam | Customer Support | Ops | Handle a ticket, Measure CSAT |
| Lex | Legal & Compliance | Leadership | Draft a contract, Compliance check |
Every agent also has the 3 shared XRPL skills: XRPL wallet, Agentic payment (x402) and Track behavior.
xrpl
library (npm i xrpl) runs in the browser via Node polyfills.src/xrpl/wallet.ts: real keypair generation, faucet funding (Testnet/Devnet),
balance reads (account_info).src/xrpl/payments.ts: Payment autofill → sign → submitAndWait.{protocol, skill, invoice, from, to}.account_tx.VITE_XUMM_API_KEY or the in-app panel.| Network | Endpoint | Faucet |
|---|---|---|
| Testnet (default) | wss://s.altnet.rippletest.net:51233 | yes |
| Devnet | wss://s.devnet.rippletest.net:51233 | yes |
| Mainnet | wss://xrplcluster.com | no — real value |
Real / production-functional:
account_info).Payment transactions, autofilled, signed and submitAndWait-ed:
agentic x402 settlements, treasury allocations, payroll batches, per-agent contributions,
the Sales "get paid" flow (a real faucet-funded client wallet pays Sol on Testnet).account_tx reads, aggregated into inbound/outbound flows.Game layer (in-world state, not fake external data):
There are no hardcoded fake balances, fake tx hashes, or stubbed ledger responses. Anything that touches money is a real on-ledger transaction.
Note: XRPL public nodes, Google Fonts (Silkscreen) and the Xaman SDK are unreachable from some sandboxed CI environments due to network egress policy — this affects the build box, not the app. In a normal browser everything connects and works.
See SECURITY.md for the full threat model. Highlights: strict
Content-Security-Policy + security headers (public/_headers, vercel.json),
React auto-escaping (no dangerouslySetInnerHTML/eval), frame-ancestors 'none'
(anti-clickjacking), non-custodial Xaman signing so private keys never touch the
app, and edge/WAF guidance for bots/scraping/DDoS.
npm install
npm run dev # http://localhost:5173
In the app:
npm run build # tsc + vite build → dist/
npm run preview # serve the build
dist/ is a static site — deploy as-is to any host (Netlify, Vercel, Cloudflare Pages,
GitHub Pages…).
Get a free API key at apps.xaman.dev, paste it into the Xaman
panel (or set VITE_XUMM_API_KEY, see .env.example), connect your wallet, then fund the
treasury with a payment you approve in the Xaman app.
src/
data/agents.ts # roster: functions + skills
data/looks.ts # per-agent character kind + colours
data/layout.ts # stage, desk positions, desk variants + job props, decor
data/faces.ts # animated ASCII expression frames per mood
data/jokes.ts # hero/agent banter
data/events.ts # random office events
components/ # Office, Character, PixelAvatar, Furniture, Hero,
# AgentSprite, AgentPanel, TreasuryPanel, XamanPanel,
# ActivityLog, Toasts, TopBar, Icon
xrpl/network.ts # network config + shared WebSocket client
xrpl/wallet.ts # generation / faucet / balances
xrpl/payments.ts # Payment + x402 memos + track + account_tx
xrpl/xaman.ts # Xaman (XUMM) non-custodial signing
audio.ts # procedural music + SFX (Web Audio)
store.ts # global state (zustand) + skill orchestrator
Stack: React · TypeScript · Vite · Zustand · xrpl.js · xumm · Web Audio. No backend, no mock.
A guided support assistant (bottom-left of the app and landing) answers questions with link buttons. It runs a cost-optimized cascade:
src/support/knowledge.ts): deterministic, on-brand
answers. Zero cost, works with no backend — this handles most questions.api/chat.ts, Vercel Edge): for unmatched questions the
browser calls a server-side proxy that tries free providers first
(Groq → Gemini → Cerebras → OpenRouter) and only falls back to paid ones
(DeepSeek → Anthropic) under a daily cap.Provider keys live only on the server — never in the browser. Configure any subset; with none set, the bot stays in free FAQ mode.
| Env var | Provider | Cost | Get a key |
|---|---|---|---|
GROQ_API_KEY | Groq | free tier | https://console.groq.com/keys |
GEMINI_API_KEY | Google Gemini | free tier | https://aistudio.google.com/apikey |
CEREBRAS_API_KEY | Cerebras | free tier | https://cloud.cerebras.ai/ |
OPENROUTER_API_KEY | OpenRouter | free models | https://openrouter.ai/keys |
DEEPSEEK_API_KEY | DeepSeek | paid (cheap) | https://platform.deepseek.com/api_keys |
ANTHROPIC_API_KEY | Anthropic Claude | paid | https://console.anthropic.com/settings/keys |
VITE_XUMM_API_KEY | Xaman (frontend) | free | https://apps.xaman.dev |
Spending limits & security (all in .env, see .env.example):
SUPPORT_MAX_TOKENS, SUPPORT_MAX_INPUT_CHARS, SUPPORT_RATE_MAX /
SUPPORT_RATE_WINDOW_MS (per-IP rate limit), SUPPORT_PAID_DAILY_CAP (max paid
calls/day), SUPPORT_ALLOWED_ORIGIN (origin lock), and SUPPORT_LLM_ENABLED=false
(kill switch → FAQ only). The proxy also validates method/size/JSON, wraps user
text against prompt injection, times out upstream calls, and never returns keys
or internal errors. For a hard global budget cap across instances, back the
counters with a KV store (e.g. Upstash Redis) — the in-memory limiter is
per-instance.