name = "finance-eu"
version = "1.0.0"
description = "EU financial services: strict redaction plus IBAN/card/VAT patterns, no web fetches, 1-year audit expectation"
extends = "strict-redaction"

[context]
# Web fetches are an exfiltration sink for regulated codebases; shell output
# compression still works, raw passthrough is reviewed case by case.
deny_tools = ["ctx_url_read"]
max_context_tokens = 12000
audit_retention_days = 365

[redaction]
# IBAN (two letters, two check digits, 11-30 alphanumerics).
iban = '\b[A-Z]{2}\d{2}[A-Z0-9]{11,30}\b'
# Payment card numbers (13-19 digits, optionally space/dash grouped).
payment_card = '\b\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?\d{1,7}\b'
# EU VAT identifiers (country prefix + 8-12 chars).
eu_vat = '\b(ATU|BE0|BG|CY|CZ|DE|DK|EE|EL|ES|FI|FR|HR|HU|IE|IT|LT|LU|LV|MT|NL|PL|PT|RO|SE|SI|SK)[0-9A-Z]{8,12}\b'
# SWIFT/BIC codes in payment contexts.
swift_bic = '\b[A-Z]{4}(AT|BE|BG|CH|CY|CZ|DE|DK|EE|ES|FI|FR|GB|GR|HR|HU|IE|IT|LI|LT|LU|LV|MT|NL|NO|PL|PT|RO|SE|SI|SK)[A-Z0-9]{2}([A-Z0-9]{3})?\b'

[filters]
# Inbound DLP (GL #675): scrub personal data from tool output before it reaches
# the model; treat prompt-injection in fetched/searched content as an integrity
# attack and refuse it (DORA/GDPR data-minimisation posture).
pii = "redact"
injection = "block"

[egress]
# Output DLP (GL #676): the agent must never write or run anything carrying a
# detected secret or personal identifier (e.g. an IBAN pasted into a commit or a
# `psql` one-liner), and its write/action rate is bounded.
block_secrets = true
max_writes_per_min = 120
