{"root_cid":"bafybeif3cgoeo2pguy6e3dk4rpv5ix6zei2doq443q2pvnumtcz4apctky","model":"openai/gpt-5.4-mini","analyzed_at":"2026-05-01T17:43:22.306Z","result":{"schema_version":1,"category":"Developer tools","category_confidence":0.68,"summary":"A private AI chat and file-vault interface with model switching, memory, and settings for the PAIN persona.","signals":["analysis-context.json: latest_probe.content_type is text/html and title is 'PAIN — pain.lafsinfinity.eth'","root: single-page app with gate, chat, vault, memory, and settings panels","root: uses Firebase auth/firestore plus external AI, TTS, and IPFS upload APIs","root: sendMsg() posts to the literal string 'ANT_URL' and addMsg()/showTyping() read missing #app-crest","root: hardcoded API credentials appear in const ANT_KEY and KEYS"],"quality":{"tier":"low","score":0.28,"is_substantive":true,"is_redirect_only":false,"is_placeholder":false,"rationale":"The app has substantial UI and feature breadth, but the core chat path is broken by a literal 'ANT_URL' fetch target and missing DOM references, so it is not reliably functional."},"security":{"risk":"high","risk_score":0.88,"threat_type":"other","safe_to_list":true,"findings":[{"type":"other","severity":"high","confidence":0.99,"evidence":"root contains hardcoded secrets and bearer/API keys, including \"const ANT_KEY = 'sk-ant-api03-...';\" and \"const KEYS = { gv: 'AIzaSyB95P43dl16wBAGznE7t5pWBKhwgebg7', hf: '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', pin: 'eyJhbGci...'}\", then uses them in browser requests.","file":"root"}]},"files_reviewed":["analysis-context.json","ipfs-app-analysis-system.md","root"]}}
