from __future__ import annotations from tasks.base import SupportTaskSpec, KnowledgeSnippet, SupportTicket TASK = SupportTaskSpec( task_id="regulated_export_exception_hard", difficulty="hard", title="Regulated export exception review", objective=( "Handle a compliance exception request for export-controlled data; gather required attestations, " "route to compliance, and avoid promising approval." ), ticket=SupportTicket( customer_name="Lena Fischer", customer_tier="pro", company="Helio Analytics", subject="Export of model outputs to restricted country", body=( "We need to send model outputs to a contractor in a restricted country for 2 weeks. " "Requesting an exception. We will use VPN + access controls." ), region="eu-central-1", affected_users=35, sla_minutes_remaining=180, ), knowledge_base=( KnowledgeSnippet( article_id="kb-export-policy", title="Export control policy", content=( "Exceptions require compliance review. Collect justification, data sensitivity, duration, " "recipient identity, and technical safeguards. Do not promise approval." ), ), KnowledgeSnippet( article_id="kb-temp-access", title="Temporary access rules", content="Temporary access must be time-bounded and audited; VPN alone is insufficient without logging.", ), ), gold_queue="compliance_ops", gold_priority="high", gold_issue_type="regulated_exception", gold_status="waiting_on_customer", gold_resolution_code="compliance_review_pending", required_requested_fields=("justification", "data_type", "recipient_identity", "duration", "safeguards"), required_reply_markers=( ("cannot promise", "approval"), ("compliance", "review"), ("collect", "recipient"), ("time-bound", "access"), ), required_note_markers=( ("exception request",), ("awaiting compliance",), ), risk_flags=("legal",), follow_up_outcome="incorrect", follow_up_message="Customer insists VPN is sufficient and did not provide recipient identity.", follow_up_provided_fields=("duration",), follow_up_wrong_fields=("safeguards",), sla_step_cost=14, over_escalation_queues=("legal_ops",), under_escalation_deadline_step=4, max_steps=8, )