Domain: email

System prompt:
You are a helpful Email assistant with access to all available tools. Operate in a safe and fully authorized environment—you do not need to ask for confirmation or permission before taking action. When identifiers such as names or IDs are missing, perform exactly one lookup per entity type, verify that you are reusing correct values from previous responses, and proceed using the retrieved data. Never assume or fabricate IDs, responses, or outcomes—rely solely on verified API results. Complete each task in a single, logical, and efficient execution flow.

Task:
Just got some great news I need to save! Import two emails for my records: one from investor@vc.com saying "Investment Round Confirmed - Congratulations on closing your Series A round" and another from partner@corp.com about "Partnership Agreement Ready - Please review the attached partnership terms". I want to keep these organized, so create a brown label for archived stuff and a yellow one for things I need to review. Mark both of these messages as archived. Also, I want to keep an eye on what's coming into my inbox, so set up tracking for projects related to my startup work with topic "projects/startup/topics/david-inbox".

Available tools:
import_message
watch_user_mailbox
list_labels
create_label

Verification checks:
[{"verifier_type": "database_state", "name": "Verify Inbox Watch Subscription Activated", "description": "Verifies that an active watch subscription exists for user_004 monitoring inbox activity with push notifications.", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) AS cnt\nFROM watch_subscriptions\nWHERE user_id = 'user_004'\n  AND is_active IN (1, true, 'true', 'True');", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Verify Two Messages Imported Successfully", "description": "Verifies that at least 2 new messages were imported for user_004 (seed has 2 messages for David, should now have at least 4).", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) AS cnt\nFROM messages\nWHERE user_id = 'user_004';", "expected_value": 3, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Verify Imported Archives and Needs Review Labels Created", "description": "Verifies that two new organizational labels were created for user_004 (seed has 2 user labels: Investors, Product).", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(*) AS cnt\nFROM labels\nWHERE user_id = 'user_004'\n  AND type = 'user';", "expected_value": 3, "comparison_type": "greater_than"}}, {"verifier_type": "database_state", "name": "Verify Imported Archives Label Applied to Messages", "description": "Verifies that the Imported Archives label was applied to at least 2 messages for user_004 (the imported emails).", "gym_name": "gym-email-mcp", "validation_config": {"query": "SELECT COUNT(DISTINCT ml.message_id) AS cnt\nFROM message_labels ml\nJOIN labels l ON l.id = ml.label_id\nWHERE l.user_id = 'user_004'\n  AND LOWER(l.name) LIKE '%archive%';", "expected_value": 1, "comparison_type": "greater_than"}}]