from typing import Dict, List WORKFLOWS: Dict[str, List[Dict]] = { "shop": [ {"id": "browse", "user_says": "I'm looking for a laptop under $1000. What do you have?", "expects_action": "respond_to_user", "policy_relevant": False, "terminal": False}, {"id": "pricing_inquiry", "user_says": "Does this qualify for a bulk discount? I might buy several.", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "pricing.bulk_discount_available", "terminal": False}, {"id": "shipping_inquiry", "user_says": "What are my shipping options? How much for free shipping?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "shipping.free_threshold", "terminal": False}, {"id": "checkout", "user_says": "Great, I'll take it. Let me check out.", "expects_action": "take_action", "policy_relevant": True, "relevant_field": "pricing.tax_included_in_price", "terminal": False}, {"id": "confirmation", "user_says": "Is tax included in the listed price?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "pricing.tax_included_in_price", "terminal": True}, ], "return": [ {"id": "initiate_return", "user_says": "I bought this 20 days ago. What's your return window?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "return.window_days", "terminal": False}, {"id": "return_method", "user_says": "How will I get my money back? Original payment or store credit?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "return.refund_method", "terminal": False}, {"id": "restocking_fee", "user_says": "Is there a restocking fee?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "return.restocking_fee_percent", "terminal": False}, {"id": "electronics_return", "user_says": "This is an electronic item. Any different rules?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "return.electronics_window_days", "terminal": False}, {"id": "process_return", "user_says": "OK, let's process the return.", "expects_action": "take_action", "policy_relevant": False, "terminal": True}, ], "subscribe": [ {"id": "plan_inquiry", "user_says": "I'm interested in your subscription. What's the monthly fee?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "subscription.monthly_fee_usd", "terminal": False}, {"id": "trial_inquiry", "user_says": "Is there a free trial? How long?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "subscription.trial_period_days", "terminal": False}, {"id": "auto_renewal", "user_says": "Does this auto-renew or do I need to manually renew?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "subscription.auto_renewal", "terminal": False}, {"id": "cancellation_terms", "user_says": "How much notice do I need to give to cancel?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "subscription.cancellation_notice_days", "terminal": False}, {"id": "billing", "user_says": "OK, sign me up. Entering my payment info now.", "expects_action": "take_action", "policy_relevant": True, "relevant_field": "subscription.auto_renewal", "terminal": True}, ], "book": [ {"id": "booking_inquiry", "user_says": "I'd like to book a service appointment. Can I cancel later?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "booking.cancellation_window_hours", "terminal": False}, {"id": "cancellation_fee", "user_says": "Is there a cancellation fee?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "booking.cancellation_fee_usd", "terminal": False}, {"id": "modification", "user_says": "What if I just need to change the date?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "booking.modification_fee_usd", "terminal": False}, {"id": "confirm_booking", "user_says": "Alright, book me in for next Tuesday.", "expects_action": "take_action", "policy_relevant": False, "terminal": True}, ], "complain": [ {"id": "file_complaint", "user_says": "I received a damaged product. This is unacceptable!", "expects_action": "respond_to_user", "policy_relevant": False, "terminal": False}, {"id": "compensation_inquiry", "user_says": "What kind of compensation can you offer me?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "complaint.compensation_types", "terminal": False}, {"id": "compensation_limit", "user_says": "How much compensation can I get?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "complaint.max_compensation_usd", "terminal": False}, {"id": "escalation_request", "user_says": "I want to speak to a manager. Can you escalate this?", "expects_action": "quote_policy", "policy_relevant": True, "relevant_field": "complaint.escalation_available", "terminal": False}, {"id": "resolution", "user_says": "Fine, let's resolve this then.", "expects_action": "take_action", "policy_relevant": False, "terminal": True}, ], } def get_workflow_steps(workflow_name: str) -> List[Dict]: return WORKFLOWS.get(workflow_name, []) def get_all_workflow_names() -> List[str]: return list(WORKFLOWS.keys())