尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗An AI teammate for UPI AutoPay that asks before the money moves. Built for the Paytm Build for India AI Hackathon, Problem Statement 3 (Autonomous AI Teammates).
Live: paytm-hack-puce.vercel.app
| Try it | Link |
|---|---|
| The 3-minute story (start here) | /demo?grid=1 |
| Customer phone app | /app |
| Merchant console (PadhoAI) | /merchant |
| Control room, flight recorder and review trail | /ops |
| Pakka for Business (simulation) | /business |
| Pakka for Business, live with passkeys | /business/live |
| Pakka live, for your own AutoPays | /live |
All merchants and people in the demo are fictional. No real money moves anywhere.
One UPI PIN at setup approves every future AutoPay charge. A ₹1 trial quietly becomes ₹599 a month, the bank SMS names a company the customer has never heard of, and the refund path bounces between app, bank and merchant. About 2 crore AutoPay mandates are revoked every month (Sept 2025).
Pakka works in the 24 hours before a charge. It asks before an unwanted charge leaves, helps a wanted charge go through, and refunds under the merchant's own rules. The AI only writes words: every rupee moves through one gateway with a rule ID, and the demo ends with ₹1,59,334 stopped, ₹55,016 collected and ₹0 moved without a rule.
| Results | |
|---|---|
| Unwanted charges stopped before they left | ₹1,59,334 |
| At-risk charges that still went through | ₹55,016 |
| Money moved without a rule | ₹0 |
| AI messages checked by a second agent in the story | 609, 1.5 rounds on average |
| Languages in the customer app | 24 (voice in 11, spoken questions in 23) |
| Unit tests | 270 passing |
| Red-team attacks that got through | 0 of 14 (consumer), 0 of 3 (model), 0 of 46 (business) |
<PHONE_1> before any model or voice call. No masking, no call./live with a passkey, add the AutoPays they really have (typed or pasted from a bank SMS) and let Pakka run on the real clock. Only money is simulated./api/v1), signed webhooks, a hash-chained ledger, an audit export and a Python SDK.The engines decide everything that moves money; the AI layer only writes words, always masked first and reviewed before anyone reads them. The browser replays the same engine from the same event log, so every screen shows exactly what the server decided.
flowchart LR
F["Masked facts"] --> W["Writer drafts"]
W --> C["Code checks<br/>facts, length, script, PII"]
C --> R{"Reviewer:<br/>all 11 criteria pass?"}
R -- "yes" --> A["Agreed draft"]
R -- "no, rounds 1 to 4:<br/>fix or contest" --> W
R -- "no, round 5:<br/>binding decision" --> K["Consolidator applies it"]
A --> Z{"Final code checks<br/>and fact-check"}
K --> Z
Z -- "pass" --> S["Sent, with its review trail"]
Z -- "fail" --> T["Hand-written template"]
| Layer | Technology |
|---|---|
| Language | TypeScript (strict); Python for the Business SDK |
| Web | Next.js 16.4 (App Router, Cache Components), React 19.3 |
| Design | Tailwind CSS 4, Mukta font, lucide-react icons; works from a 390 px phone to a laptop |
| State and validation | zustand, Zod 4 |
| Database | Supabase Postgres in Mumbai (migrations 0001_init, 0002_b2b, 0003_live) |
| Hosting | Vercel, region bom1 (Mumbai) |
| Language models | Gemini 3.5 Flash and Flash-Lite (free tier), Claude Sonnet and Haiku, Sarvam 105B |
| Indian-language AI | Sarvam Bulbul v3 (speech), Saaras v4 (listening), Mayura and Sarvam Translate |
| Cryptography and identity | @noble/curves and @noble/hashes (Ed25519, P-256, SHA-256), SimpleWebAuthn passkeys |
| Determinism | seedrandom (seed 2711), a synchronous SHA-256 for idempotency keys |
| Testing | Vitest (270 tests), Playwright (end-to-end story and a 39-step screenshot tour), Python unittest |
| Tooling | pnpm, tsx, ESLint |
pnpm install
pnpm build && pnpm start # or: pnpm dev
Open http://localhost:3000. Pick a surface or use the one-laptop grid (/demo?grid=1). To put Sunita's app on a phone, connect the phone to the same Wi-Fi and scan the QR on the home page. Nothing below is required: without keys the demo runs in each browser on hand-written templates.
Copy .env.example to .env.local. All keys stay on the server.
| Variable | For |
|---|---|
NEXT_PUBLIC_SYNC=server, NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY | One shared demo across phone and laptop; Business and live storage |
LLM_PROVIDER | gemini, anthropic, sarvam or none (otherwise whichever key is set) |
GEMINI_API_KEY, GEMINI_MODEL, GEMINI_MODEL_FAST | Gemini (free): writer gemini-3.5-flash, reviewer and classifiers gemini-3.5-flash-lite |
LLM_API_KEY, LLM_MODEL, LLM_MODEL_FAST | Anthropic instead |
SARVAM_API_KEY, SARVAM_MODEL | Voice, listening, translation, 24 languages, bank SMS reading; Sarvam 105B as a chat model |
LLM_USE_DEMO_CACHE | Serve texts baked by pnpm bake:llm (default on) |
PAKKA_SESSION_SECRET, PAKKA_ORIGINS, PAKKA_RP_ID | Passkey sessions for /live and /business/live |
CRON_SECRET | Protects /api/live/cron and /api/v1/live/cron, which move time when nobody is using the app |
supabase/migrations/0001_init.sql in its SQL Editor (0002_b2b.sql for Business live, 0003_live.sql for Pakka live)..env.local and in Vercel.pnpm check:supabase plays the whole story against the database and checks the numbers.| Command | What it does |
|---|---|
pnpm test | 270 unit tests: engine, gateway, invariants, red teams, masking, review loop, Sarvam, Business, live |
pnpm build && pnpm e2e | Plays the 3-minute story in Chrome and checks the final counters |
pnpm tour | 39-step screenshot tour of every screen (report in docs/test-report) |
pnpm bake:llm | Writes and reviews every story text into src/llm/demo-cache.json; resumable |
pnpm try:review | One reminder and one live question through the review loop |
pnpm bake:sarvam | Translates the customer copy into 21 more languages |
pnpm sarvam:first-call | One Sarvam call to check the key |
pnpm b2b:story | Prints what happened to every invoice in the Business story |
pnpm b2b:live-demo, pnpm agents | Sets up a Business company and runs reference agents against it |
pnpm b2b:verify <export.json> | Verifies a signed Business ledger export offline |
pnpm test:python | Tests the Python SDK |
pnpm check:supabase, pnpm check:live | Plays the story against Supabase or the deployed site |
People sign in and sign every approval with passkeys. Agents run outside the app and call the API with their own Ed25519 keys (docs/AGENT_API.md; Python client and guide in docs/BUSINESS_API_PYTHON.md). Try it against pnpm dev:
pnpm b2b:live-demo
pnpm agents run
pnpm agents erp-demo erp v_1 --gstin=<printed GSTIN>
pnpm agents erp-demo erp v_1 --gstin=<printed GSTIN> --phish
pnpm b2b:live-demo approve
Or create your own company at /business/live with your own passkey, invite people by link, and register agents made with pnpm agents keygen <name>.
| Path | What is there |
|---|---|
src/engine, src/sim | The AutoPay engine (pure TypeScript) and the bank, merchant and NPCI simulators |
src/b2b | The Business engine: agents, treasury guard, ledger, policy, red team |
src/llm | Prompts, schemas, fact-check, demo cache, model client; src/llm/agents holds the review loop and rubric |
src/lib/privacy | Masking |
src/lib/server | Shared sessions, Sarvam voice routes, Business and live servers |
src/copy | Hand-written copy in Hindi, Hinglish and English, and the 21 translated languages |
src/components, src/app | Screens and routes |
sdk/python | Python client for the Business agent API |
supabase/migrations | Database setup |
tests | Unit, end-to-end and tour tests |
docs | Decisions, agent API, Python guide, test report |
Decisions where the PRD is silent are recorded in docs/DECISIONS.md.
0003_live.sql run in Supabase and a cron call with CRON_SECRET.Built by Sneha (GitHub sneharc16: the AutoPay engine and demo, privacy masking, the three-agent review) and Dhruv Dawar (GitHub dhruvdawar11: Pakka for Business, Sarvam languages and voice, Pakka live, the Python SDK).