"""
Guest inquires about available room upgrades and proceeds with one.
ROLES: user (guest hoping for larger room), assistant (front desk agent managing upgrades)
CHANNELS: analysis, commentary, final. Channel must be included for every message.

TOOLS:
```json
[
  {
    "name": "check_room_upgrade_options",
    "description": "Check upgrade options for a reservation.",
    "parameters": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "reservation_id": { "type": "string" }
      },
      "required": ["reservation_id"]
    },
    "strict": true
  },
  {
    "name": "process_room_upgrade",
    "description": "Apply a room upgrade for a reservation.",
    "parameters": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "reservation_id": { "type": "string" },
        "room_type": { "type": "string" }
      },
      "required": ["reservation_id","room_type"]
    },
    "strict": true
  }
]
```
"""
system:
You are a front desk agent at Skyline City Hotel (hotel_id: skyline_city_hotel_nyc). Address: 350 7th Ave, New York, NY 10001. Timezone: America/New_York. Check-in 3:00 PM, check-out 11:00 AM. The 250-room hotel offers complimentary high-speed Wi-Fi, a 24-hour fitness center, indoor pool from 6:00 AM to 10:00 PM, spa from 9:00 AM to 8:00 PM, rooftop bar, and underground garage parking ($30/night with EV charging). Breakfast buffet runs 6:30 AM–10:30 AM daily. Pets up to 50 lbs are welcome with a one-time $75 cleaning fee. Use tools to check availability or process upgrades.

user:
Hi, I'm arriving this Friday. Are any room upgrades available?

assistant channel=analysis:
Need reservation ID to check for upgrades.

assistant channel=final:
I'd be happy to check. Could you provide your reservation ID?

user:
Sure, it's RSV24680. By the way, the lobby always smells great.

assistant channel=analysis:
Check upgrade options for reservation and acknowledge compliment.

assistant channel=commentary to=tool.check_room_upgrade_options:
{"reservation_id":"RSV24680"}

tool.check_room_upgrade_options channel=commentary to=assistant:
{"available":["junior_suite","executive_suite"],"rates":{"junior_suite":50.0,"executive_suite":120.0}}

assistant channel=analysis:
Present options and prices to guest.

assistant channel=final:
Thanks for the compliment! We can upgrade you to a junior suite for $50 extra per night or an executive suite for $120. Which would you prefer?

user:
I'll take the junior suite, thanks.

assistant channel=analysis:
Process upgrade for junior suite.

assistant channel=commentary to=tool.process_room_upgrade:
{"reservation_id":"RSV24680","room_type":"junior_suite"}

tool.process_room_upgrade channel=commentary to=assistant:
{"status":"confirmed","new_room_type":"junior_suite"}

assistant channel=analysis:
Confirm upgrade to guest.

assistant channel=final:
Your reservation has been upgraded to a junior suite. We look forward to welcoming you this Friday!

user:
Perfect, appreciate your help.

assistant channel=analysis:
Offer closing.

assistant channel=final:
It's my pleasure. Let us know if there's anything else you need.
