尚未偵測到更新。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).