trips/mock
Greg Pomerantz 88dc0c5323 mock: drop a real flight booking → LLM re-anchors the trip
The user drags a flight ticket (PDF/text/ics/html) onto the chat panel,
or uses the new 📎 button. The doc is text-extracted server-side
(pdftotext for PDFs; images rejected with a clear "no OCR" message),
then the LLM reads it, extracts the confirmed arrival + departure
(date, local time, airport, city) and calls a new deterministic tool,
apply_flight_anchors, which reconfigures the trip:

- re-dates the day window across the booked [arrival, departure] span
  (contiguous when the day counts match, evenly spread when they don't)
- records the flights as hard-anchor bookings, replacing placeholders
- shortens the arrival day (start after landing + a real airport→hotel
  taxi time) and the departure day (ends exactly at the booked time)
- trims stops that no longer fit and updates the trip title's range

Undo/redo and reload persistence now version the trip's bookings + title
alongside days/stays, so a re-configuration reverts and reloads cleanly.
Server gains POST /parse-doc. Verified E2E (LLM extraction + reconfigure),
idempotency, drag-and-drop, and undo; non-flight agent unaffected.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-09 13:20:47 -04:00
..
scripts multi-trip mock + Colombia trip with a real walking router 2026-09-09 09:44:29 -04:00
app.js mock: drop a real flight booking → LLM re-anchors the trip 2026-09-09 13:20:47 -04:00
data.js multi-trip mock + Colombia trip with a real walking router 2026-09-09 09:44:29 -04:00
index.html mock: drop a real flight booking → LLM re-anchors the trip 2026-09-09 13:20:47 -04:00
server.js mock: drop a real flight booking → LLM re-anchors the trip 2026-09-09 13:20:47 -04:00
styles.css mock: drop a real flight booking → LLM re-anchors the trip 2026-09-09 13:20:47 -04:00