{"$defs":{"AgentConfig":{"properties":{"name":{"default":"agent","title":"Name","type":"string"},"type":{"default":"generic","title":"Type","type":"string"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Endpoint"}},"title":"AgentConfig","type":"object"},"CustomDetectorConfig":{"additionalProperties":true,"properties":{"name":{"title":"Name","type":"string"},"pattern":{"title":"Pattern","type":"string"},"severity":{"default":"medium","title":"Severity","type":"string"},"data_type":{"default":"custom","title":"Data Type","type":"string"},"confidence":{"default":0.9,"title":"Confidence","type":"number"}},"required":["name","pattern"],"title":"CustomDetectorConfig","type":"object"},"DefenseConfig":{"description":"Runtime sanitizer applied before findings are stored/returned.","properties":{"enabled":{"default":false,"title":"Enabled","type":"boolean"},"style":{"default":"placeholder","title":"Style","type":"string"},"channels":{"items":{"type":"string"},"title":"Channels","type":"array"}},"title":"DefenseConfig","type":"object"},"DetectionConfig":{"description":"Controls the hybrid detection pipeline (Tiers 1–3).","properties":{"mode":{"default":"fast","title":"Mode","type":"string"},"llm_judge":{"$ref":"#/$defs/LLMJudgeConfig"},"presidio":{"$ref":"#/$defs/PresidioConfig"}},"title":"DetectionConfig","type":"object"},"DetectorToggles":{"additionalProperties":true,"properties":{"pii":{"default":true,"title":"Pii","type":"boolean"},"secrets":{"default":true,"title":"Secrets","type":"boolean"},"healthcare":{"default":true,"title":"Healthcare","type":"boolean"},"finance":{"default":false,"title":"Finance","type":"boolean"},"hr":{"default":false,"title":"Hr","type":"boolean"},"keyname":{"default":true,"title":"Keyname","type":"boolean"}},"title":"DetectorToggles","type":"object"},"LLMJudgeConfig":{"description":"Configuration for the Tier-3 LLM-as-Judge semantic detector.","properties":{"enabled":{"default":false,"title":"Enabled","type":"boolean"},"base_url":{"default":"","title":"Base Url","type":"string"},"model":{"default":"","title":"Model","type":"string"},"api_key_env":{"default":"OPENAI_API_KEY","title":"Api Key Env","type":"string"},"threshold":{"default":0.72,"title":"Threshold","type":"number"},"timeout":{"default":30.0,"title":"Timeout","type":"number"}},"title":"LLMJudgeConfig","type":"object"},"LLMProviderConfig":{"description":"LLM provider used for live agent runs (``agentleak run --live``).","properties":{"provider":{"default":"openrouter","title":"Provider","type":"string"},"base_url":{"default":"https://openrouter.ai/api/v1","title":"Base Url","type":"string"},"model":{"default":"openai/gpt-4o-mini","title":"Model","type":"string"},"api_key_env":{"default":"OPENROUTER_API_KEY","title":"Api Key Env","type":"string"},"temperature":{"default":0.2,"title":"Temperature","type":"number"},"timeout":{"default":60.0,"title":"Timeout","type":"number"}},"title":"LLMProviderConfig","type":"object"},"PolicyGateConfig":{"description":"Compliance gates evaluated after every selftest / CI run.","properties":{"fail_on":{"items":{"type":"string"},"title":"Fail On","type":"array"},"fail_on_any":{"default":false,"title":"Fail On Any","type":"boolean"}},"title":"PolicyGateConfig","type":"object"},"PresidioConfig":{"description":"Configuration for the Tier-2b Presidio detector (extra required).","properties":{"enabled":{"default":false,"title":"Enabled","type":"boolean"},"score_threshold":{"default":0.5,"title":"Score Threshold","type":"number"}},"title":"PresidioConfig","type":"object"},"PrivacyConfig":{"properties":{"redact_values":{"default":true,"title":"Redact Values","type":"boolean"},"store_raw_traces":{"default":false,"title":"Store Raw Traces","type":"boolean"},"subject_ledger":{"default":"","title":"Subject Ledger","type":"string"}},"title":"PrivacyConfig","type":"object"},"PrivacyPolicyConfig":{"description":"Simple declarative assertions applied to every runtime trace.","properties":{"max_risk_index":{"anyOf":[{"maximum":1.0,"minimum":0.0,"type":"number"},{"type":"null"}],"default":null,"title":"Max Risk Index"},"max_findings":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Max Findings"},"forbid_levels":{"items":{"type":"integer"},"title":"Forbid Levels","type":"array"},"forbid_channels":{"items":{"type":"string"},"title":"Forbid Channels","type":"array"},"forbid_data_types":{"items":{"type":"string"},"title":"Forbid Data Types","type":"array"},"require_explicit_vault":{"default":false,"title":"Require Explicit Vault","type":"boolean"},"flows":{"items":{"additionalProperties":true,"type":"object"},"title":"Flows","type":"array"},"forbid_cross_subject":{"default":false,"title":"Forbid Cross Subject","type":"boolean"}},"title":"PrivacyPolicyConfig","type":"object"},"ProjectConfig":{"properties":{"name":{"default":"agentleak-project","title":"Name","type":"string"},"description":{"default":"","title":"Description","type":"string"}},"title":"ProjectConfig","type":"object"},"ReportsConfig":{"properties":{"output_dir":{"default":"reports","title":"Output Dir","type":"string"},"formats":{"items":{"type":"string"},"title":"Formats","type":"array"}},"title":"ReportsConfig","type":"object"},"ScenarioRef":{"properties":{"id":{"title":"Id","type":"string"},"enabled":{"default":true,"title":"Enabled","type":"boolean"}},"required":["id"],"title":"ScenarioRef","type":"object"},"ScoringConfig":{"properties":{"fail_below":{"default":40,"title":"Fail Below","type":"integer"},"conditional_below":{"default":70,"title":"Conditional Below","type":"integer"},"block_on_critical":{"default":true,"title":"Block On Critical","type":"boolean"},"weights":{"items":{"type":"integer"},"title":"Weights","type":"array"},"level_overrides":{"additionalProperties":{"type":"integer"},"title":"Level Overrides","type":"object"}},"title":"ScoringConfig","type":"object"},"VaultConfig":{"description":"Optional audited-vault scope: the denominator ρ_S for the Risk Index.\n\nProvide either per-level counts (``levels``) or a raw ``rho_s``. When unset,\nAgentRisk falls back to the observed reachable set (everything detected).","properties":{"levels":{"additionalProperties":{"type":"integer"},"title":"Levels","type":"object"},"rho_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Rho S"},"scope_def":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Scope Def"}},"title":"VaultConfig","type":"object"}},"additionalProperties":true,"description":"Top-level AgentLeak configuration.","properties":{"project":{"$ref":"#/$defs/ProjectConfig"},"agent":{"$ref":"#/$defs/AgentConfig"},"scenarios":{"items":{"$ref":"#/$defs/ScenarioRef"},"title":"Scenarios","type":"array"},"channels":{"items":{"type":"string"},"title":"Channels","type":"array"},"detectors":{"$ref":"#/$defs/DetectorToggles"},"scoring":{"$ref":"#/$defs/ScoringConfig"},"reports":{"$ref":"#/$defs/ReportsConfig"},"privacy":{"$ref":"#/$defs/PrivacyConfig"},"vault":{"$ref":"#/$defs/VaultConfig"},"custom_detectors":{"items":{"$ref":"#/$defs/CustomDetectorConfig"},"title":"Custom Detectors","type":"array"},"llm":{"$ref":"#/$defs/LLMProviderConfig"},"detection":{"$ref":"#/$defs/DetectionConfig"},"defense":{"$ref":"#/$defs/DefenseConfig"},"policy_gate":{"$ref":"#/$defs/PolicyGateConfig"},"privacy_policy":{"$ref":"#/$defs/PrivacyPolicyConfig"}},"title":"Config","type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","x-agentleak-schema-version":"2026.07"}