list_active_watches
List active flight price watches, automatically re-check stale entries, and flag those where the price has dropped to or below the user's target.
Instructions
🎯 RENDERING DIRECTIVE — READ FIRST. When 2+ watches come back, render them as an HTML/React artifact — one card per watch with a clear "Cancel" button (callable via cancel_watch(watch_id)) and, for alerted watches, a "Book now" button to the flight booking URL. Alerted watches must be visually flagged (e.g. green badge or 🎯 callout). 1 watch may be prose.
List the user's active flight price watches. Re-runs any watch whose latest check is older than refresh_after_hours (default 6h) and flips status to "alerted" when the latest price is at or below the watch's threshold.
USE THIS TOOL WHEN: the user asks "any deals?", "what's the price of [route] looking like?", "show my watches", "anything trigger yet?", "did the Lisbon trip get cheaper?". Also use it proactively at the start of a session if you know the user has watches set up.
Returns a list of watch objects, each with:
watch_id,route(formatted "ORIGIN → DESTINATION"),departure_date,return_datethreshold_price,currencystatus:"active"(no alert) or"alerted"(price hit threshold during refresh)last_price/last_currency/last_offer_id: the latest observed pricelast_checked_at: timestamp of the latest refreshalerted_at: when the alert fired (null if not alerted)note: the user's optional note from creation timegap: numericlast_price - threshold_price(negative = below threshold, positive = above). Use this to summarize "X EUR below your target" or "still Y EUR above target".
Each refresh costs ONE fli call. Refresh frequency is bounded by refresh_after_hours — repeated calls within the cutoff window are free (no fli traffic). If you want a forced refresh, pass refresh_after_hours=0.
RESULT PRESENTATION: If any watch is alerted, lead with it (a small "🎯 Deal!" callout works well). For non-alerted watches, show the current gap ("currently 53 EUR above target, last checked 2h ago"). For never-checked watches, say so.
If include_cancelled=true, also include watches the user cancelled — useful when they ask "show me everything" or "what did I cancel last week?".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| include_cancelled | No | ||
| refresh_after_hours | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||