{"version":"0.14.1","channels":["user_input","final_output","inter_agent_message","shared_memory","tool_call","tool_response","log","generated_file"],"detectors":["pii","secrets","healthcare","finance","hr","keyname"],"compliance_frameworks":["gdpr","law25","nist_ai_rmf","owasp_llm","eu_ai_act","hipaa","pci_dss","ferpa","coppa","glba","tcpa","insurance","telecom","real_estate"],"redaction":{"redactable":["account_balance","account_number","address","aws_access_key","bearer_token","client_identifier","connection_string","credit_card","credit_score","date_of_birth","disciplinary_action","email","github_token","google_api_key","health_condition","health_identifier","hr_complaint","iban","income","ip_address","jwt","llm_api_key","loan_amount","medication","national_insurance_number","performance_review","person_name","phone_number","private_key","salary","sick_leave","sin","slack_token","ssn","stripe_key"],"redactable_count":35,"detect_only":{"employment_status":"A status word ('terminated', 'on leave') carries no identifier on its own; removing it deletes the sentence's meaning and re-identifies nobody. It is scored, not stripped.","internal_note":"Marks a passage as internal rather than naming a value to remove; the sensitive content inside it is caught by its own detectors.","secret_assignment":"Flags the shape 'KEY = <value>' in source code. The credential itself is redacted by the credential detectors; blanking the assignment would remove the code."},"extra":["CANARY"]},"scenarios":{"total":266,"builtin":10,"packs":{"agentdojo_exfil":100,"agentleak_bench":36,"privacylens_ci":120}},"agent_types":[{"id":"generic","label":"Generic / SDK"},{"id":"langchain","label":"LangChain"},{"id":"langgraph","label":"LangGraph"},{"id":"crewai","label":"CrewAI"},{"id":"autogen","label":"AutoGen"},{"id":"openai_swarm","label":"OpenAI Swarm / Agents SDK"},{"id":"llamaindex","label":"LlamaIndex"},{"id":"semantic_kernel","label":"Semantic Kernel"},{"id":"pydantic_ai","label":"Pydantic AI"},{"id":"smolagents","label":"smolagents"},{"id":"google_adk","label":"Google ADK"},{"id":"computer_use","label":"Computer-use / Coding agent (OpenHands, Cline, Open Interpreter)"},{"id":"openinference","label":"OpenTelemetry / OpenInference (Phoenix, OpenLLMetry)"},{"id":"mcp","label":"MCP (Model Context Protocol)"}],"agent_card_url":"/.well-known/agent-card.json","documentation":{"humans":"/docs","developers":"/docs/developers","agents":"/docs/agents","api_reference":"/docs/api","agent_instructions":"/agents.md","llms":"/llms.txt","llms_full":"/llms-full.txt","openapi":"/openapi.json","schemas":"/api/schemas","interactive_api":"/api/docs"},"agent_api":{"register":"POST /api/agent/register","code_scan":"POST /api/agent/code","selftest":"POST /api/selftest (or /api/selftest-header)","improve":"POST /api/agent/improve","status":"GET /api/agent/status","auth":"X-AgentLeak-Key header or api_key in body (project-scoped ak_... key)"},"free_tier":{"public":true,"monthly_quota":1000,"unlimited":false,"byok":true,"note":"Free detection (regex/Presidio/entropy) runs at no cost. LLM-judge and live agent runs are bring-your-own-key."}}