@curless/hotel-storefront 0.56.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1417,6 +1417,8 @@ export declare const notSoldHereWords: (group: string) => string;
1417
1417
  export declare const notOnSaleWords: (group: string, why: string) => string;
1418
1418
  /** A rate's cancellation terms in the supplier's own words (`Room.terms`), quoted - or that none were given. */
1419
1419
  export declare const termsWords: (terms: string) => string;
1420
+ /** How many room types a client that draws no card shows the guest at once - see `roomChoiceRows`. */
1421
+ export declare const ROOM_CHOICES_SHOWN = 5;
1420
1422
  /**
1421
1423
  * From how many cities a country is a list of cities to choose from rather
1422
1424
  * than a list of hotels. China is forty; Malaysia's six hotels in three cities
@@ -1495,5 +1497,10 @@ export declare const ON_CARD: {
1495
1497
  * answer said "12 Huazhu hotels in 上海." and nothing else - the hotels were on
1496
1498
  * the card - so a client that draws none had a count to tell the guest.
1497
1499
  */
1498
- export declare const LIST_NOT_DRAWN = "Nothing was drawn: this app shows no cards, so the guest has seen none of these hotels. Tell them in your reply - each one's name, area and price as given here:";
1500
+ /**
1501
+ * How many hotels of a list a client that draws no card shows the guest at once
1502
+ * (总线程 11-06, after RollingGo's text answers): the rest are a count.
1503
+ */
1504
+ export declare const HOTEL_CHOICES_SHOWN = 6;
1505
+ export declare const LIST_NOT_DRAWN = "Nothing was drawn: this app shows no cards, so the guest has seen none of these hotels. Tell them in your reply as a numbered list, in this order and with these numbers - each one's name; a short line with where it is, its price and what it has; and its tags, where it has any, as one more short line - as given here and nothing that is not - at most 6, and any more as a count the guest can ask for, never a pick of your own. The guest answers with a number or a name:";
1499
1506
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAWzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAmChD,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAEV,cAAc,EAgBd,KAAK,EACL,KAAK,EAKL,eAAe,EAMhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,UAAU,EAA+B,MAAM,YAAY,CAAC;AAuF1E,+GAA+G;AAC/G,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,GAAG,SAAS,EACZ,GAAG,UAAU,EACb,OAAM,mBAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACC,CAAC;AAEjD,mEAAmE;AACnE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAChG,GAAG,CAAC,EACJ,OAAO;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,EAC9C,OAAO,MAAM,KACZ,CA6BF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,GAAG,SAAS,EAAE,MAAM,mBAAmB,KAAG,GAAG,CAAC,MAAM,CAuB9E,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,KAAG,MACoO,CAAC;AAsiC3S;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,mBAAmB,EACzB,OAAO,IAAI,EACX,OAAM;IACJ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,KACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAmDxB,CAAC;AA6GF,eAAO,MAAM,kBAAkB,GAAI,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAmRtE,CAAC;AAEH,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA2QF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA8NF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAGyK,CAAC;AAYrN;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,QAAQ,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;;;qBA/lD/C,CAAR;;;;;qBAEuC,CAAC;;;;;;oBAeuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA0+B7D,MAAM;gBAAU,MAAM;gBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAtC,MAAM;gBAAU,MAAM;gBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAtC,MAAM;gBAAU,MAAM;gBAAU,MAAM;;;;;;;;CAomBoB,CAAC;AA2fhF,4EAA4E;AAC5E,eAAO,MAAM,WAAW,mDAAmD,CAAC;AA+O5E;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAC4Q,CAAC;AAE9T;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MACiF,CAAC;AAM9I,gHAAgH;AAChH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAGR,CAAC;AA8FpC,sGAAsG;AACtG,eAAO,MAAM,kBAAkB,IAAI,CAAC;AA8nCpC;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAyK/B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,QAAQ,KAAG,UAOzC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,MAAM,QAAQ,EACd,MAAM,MAAM,EACZ,SAAS,OAAO,EAChB,KAAK,WAAW,KACf,OAAO,CAAC,UAAU,CA0CpB,CAAC;AAsBF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,oPACuN,CAAC;AAEpP;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,2aAC+Y,CAAC;AAE3a,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,kOACgM,CAAC;AAElO;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;CAKV,CAAC;AAEX;;;;;;GAMG;AACH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,cAAc,0dAA+e,CAAC"}
package/dist/tools.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { aboutLines } from './about.js';
2
2
  import { DEFAULT_PAGE, FULL_CAPABILITIES, LASTING_REQUESTS, MAX_PAGE, REQUEST_KINDS, REQUEST_NOTE_MAX, guestTooLong, notPricedForNoAnswer, unansweredBy, unitWords, } from './backend.js';
3
3
  import { usedOnWords } from './coupon-words.js';
4
- import { MAX_GUESTS, addDays, isDay, nights as nightsBetween } from './dates.js';
4
+ import { MAX_GUESTS, addDays, dateOptions, dayWords, isDay, nights as nightsBetween, stayDayWords, toDay, } from './dates.js';
5
5
  import { FACILITIES } from './facilities.js';
6
6
  import { DESCRIPTION_MAX, POLICY_MAX, hotelName, hotelText } from './fence.js';
7
7
  import { clockOf, minutesOf, startProblem, stayWords, windowWords } from './hourly.js';
@@ -11,7 +11,7 @@ import { overlapsOf } from './overlap.js';
11
11
  import { MAX_COMPARED, MAX_CONS, MAX_DAYS, MAX_ITEMS_PER_DAY, MAX_MOMENTS, MAX_PROS, buildItinerary, candidatesFor, compareHotels, namesMoreThanOne, } from './present.js';
12
12
  import { withReference } from './reference.js';
13
13
  import { regionOf } from './regions.js';
14
- import { activeKeysOf, byRoomType, facetsOf, keyWords, matchesTerms, optionsOf, roomTermsOf, termWords, } from './room-filters.js';
14
+ import { FAMILY_SLEEPS, activeKeysOf, byRoomType, facetsOf, keyWords, matchesTerms, optionsOf, roomTermsOf, termWords, } from './room-filters.js';
15
15
  import { SAME_BOOKING_MS } from './same-booking.js';
16
16
  import { MAX_EXTRA_QUANTITY, MAX_ROOMS_PER_LINE, clampCount, pickedKey, shownOf, stampOf, tripKey, } from './trip.js';
17
17
  import { branded, catalogue, upFirst } from './vocab.js';
@@ -2384,6 +2384,16 @@ const memberTripLines = (q) => {
2384
2384
  const couponRefusedLine = (q) => q.couponRefused
2385
2385
  ? `The coupon ${q.couponRefused.name ? couponName({ name: q.couponRefused.name, names: q.couponRefused.names }) : q.couponRefused.id} was NOT taken off: ${q.couponRefused.why} The total is without it.`
2386
2386
  : '';
2387
+ /** What cancelling a trip's room costs, after its price: ", free to cancel until …" - or nothing where nothing is known. */
2388
+ const lineCancelWords = (l) => l.terms !== undefined
2389
+ ? `, ${termsWords(l.terms)}`
2390
+ : l.freeCancellationUntil
2391
+ ? `, free to cancel until ${freeUntilText(l)}`
2392
+ : l.refundable === false
2393
+ ? ', non-refundable'
2394
+ : l.refundable
2395
+ ? ', the free cancellation window has closed - cancelling now has a fee'
2396
+ : '';
2387
2397
  const tripText = (quote, noCards) => {
2388
2398
  // A part not priced because its group did not answer just now: said once, and
2389
2399
  // left to the guest to ask for again (`askLater`; the trip is drawn as a card).
@@ -2397,7 +2407,17 @@ const tripText = (quote, noCards) => {
2397
2407
  if (quote.lines.length === 0)
2398
2408
  return 'The trip is empty.';
2399
2409
  const lines = quote.lines.map((l) => l.kind === 'room'
2400
- ? `- ${l.quantity ?? 1}× ${withZh(l.title, l.titleNames, noCards)} at ${withZh(l.hotelName, l.hotelNames, noCards)}, ${l.hourly ? stayWords(l.stay, l.hourly) : `${stayWords(l.stay)} (${l.nights} ${l.nights === 1 ? 'night' : 'nights'})`} — ${formatMoney(l.total)}`
2410
+ ? noCards
2411
+ ? // ⚠️ EVERYTHING THE GUEST SAYS YES TO, ON THE LINE (robin 11-06): to a
2412
+ // client that draws no card this is what is said back before the
2413
+ // booking - the nights with their weekdays, the party, and what
2414
+ // cancelling costs, which the card shows beside the Book button.
2415
+ `- ${l.quantity ?? 1}× ${withZh(l.title, l.titleNames, true)} at ${withZh(l.hotelName, l.hotelNames, true)}, ${l.hourly
2416
+ ? stayWords(l.stay, l.hourly)
2417
+ : l.stay
2418
+ ? `${stayDayWords(l.stay.checkIn, l.stay.checkOut)}, ${l.stay.checkIn} to ${l.stay.checkOut}`
2419
+ : `${l.nights} ${l.nights === 1 ? 'night' : 'nights'}`}${l.stay ? `, ${l.stay.guests} ${l.stay.guests === 1 ? 'guest' : 'guests'}` : ''} — ${formatMoney(l.total)}${lineCancelWords(l)}`
2420
+ : `- ${l.quantity ?? 1}× ${withZh(l.title, l.titleNames, noCards)} at ${withZh(l.hotelName, l.hotelNames, noCards)}, ${l.hourly ? stayWords(l.stay, l.hourly) : `${stayWords(l.stay)} (${l.nights} ${l.nights === 1 ? 'night' : 'nights'})`} — ${formatMoney(l.total)}`
2401
2421
  : `- ${l.ordered ?? l.quantity}× ${l.title}${l.ordered !== undefined && l.quantity !== undefined && l.quantity !== l.ordered ? ` (${l.quantity} in all, over the stay)` : ''} — ${formatMoney(l.total)}`);
2402
2422
  return [
2403
2423
  ...lines,
@@ -2759,6 +2779,121 @@ noCards) => {
2759
2779
  : `- ${type.name}${roomFactsWords(cheapest)} — ${n} rates from ${fromWords(cheapest)}${forRooms(cheapest)}. Cheapest: "${cheapest.name}"${labelWords(cheapest)}, ${cancelWords(cheapest)}.${also.length ? ` ${also.join('; ')}.` : ''}`;
2760
2780
  });
2761
2781
  };
2782
+ /** How many room types a client that draws no card shows the guest at once - see `roomChoiceRows`. */
2783
+ export const ROOM_CHOICES_SHOWN = 5;
2784
+ /** The labels that say what a rate has for breakfast - its column of a choice, not a label after it. */
2785
+ const isMealLabel = (l) => l === 'room-only' || l.startsWith('breakfast');
2786
+ /** Breakfast on a rate, as a column of a choice: its label's own words ("breakfast for 2"), or with or without. */
2787
+ const breakfastColumn = (r) => {
2788
+ const said = (r.labels ?? []).find((l) => l.startsWith('breakfast'));
2789
+ return said ? LABEL_WORDS[said] : facetsOf(r).breakfast ? 'breakfast included' : 'no breakfast';
2790
+ };
2791
+ /** A rate's labels other than its breakfast - " [promotion, paid in advance - not booked here]" - or nothing. */
2792
+ const otherLabelWords = (r) => labelWords({ ...r, labels: (r.labels ?? []).filter((l) => !isMealLabel(l)) });
2793
+ /**
2794
+ * A hotel's rooms for the nights as the numbered choices a client that draws no
2795
+ * card tells the guest (robin 11-06: 「房型选择…看看有没有办法在文字版优化下」).
2796
+ *
2797
+ * One row per ROOM TYPE, cheapest first - name · bed · breakfast · cancelling ·
2798
+ * the whole stay's total - at its lowest rate, with how many other rates the
2799
+ * type has: what the card shows a guest who can tap, in a line they can answer
2800
+ * with its number. The room id after the dash is the one `addToTrip` takes for
2801
+ * that number. Every row is in the answer, numbered, so "the sixth" is a row
2802
+ * the model can name when the guest asks for the rest; the guest is shown the
2803
+ * first `ROOM_CHOICES_SHOWN`, and the others as a count.
2804
+ *
2805
+ * ⚠️ HOW IT IS PAID STAYS ON THE ROW (2026-11-02 audit, P1-5): a rate paid in
2806
+ * advance cannot be booked here, and a row that said only its price would let
2807
+ * the model offer it.
2808
+ */
2809
+ const roomChoiceRows = (rooms, roomsWanted) => byRoomType(rooms)
2810
+ .map((type) => ({
2811
+ type,
2812
+ r: type.rooms.reduce((a, b) => (b.stayTotal.minor < a.stayTotal.minor ? b : a)),
2813
+ }))
2814
+ .sort((a, b) => a.r.stayTotal.minor - b.r.stayTotal.minor)
2815
+ .map(({ type, r }, i) => {
2816
+ const others = type.rooms.length - 1;
2817
+ const more = others
2818
+ ? `${others} more ${others === 1 ? 'rate' : 'rates'} on this room type`
2819
+ : '';
2820
+ // ⚠️ "BEFORE TAXES" ONLY WHERE IT IS SO (0.55.3): a supplier price with its
2821
+ // taxes in and no split (`Room.terms`, Otaless - `taxesAndFees` "Included")
2822
+ // is "a night" alone.
2823
+ const night = nightWords(true, r.terms !== undefined && r.taxesAndFees.minor === 0);
2824
+ const total = r.hourly
2825
+ ? `${priceWords(r, true)}${more ? ` (${more})` : ''}`
2826
+ : `${roomsWanted > 1
2827
+ ? `${formatMoney(multiplyMoney(r.stayTotal, roomsWanted))} for ${roomsWanted} rooms, for the stay incl. taxes and fees (${formatMoney(r.nightly)} ${night} a room`
2828
+ : `${formatMoney(r.stayTotal)} for the stay incl. taxes and fees (${formatMoney(r.nightly)} ${night}`}${more ? `; ${more}` : ''})`;
2829
+ return `${i + 1}. ${[
2830
+ withZh(type.name, r.roomType ? r.roomType.names : r.names, true),
2831
+ r.beds,
2832
+ // A room for a family says so: "three of us" is chosen by it.
2833
+ r.sleeps >= FAMILY_SLEEPS ? `sleeps ${r.sleeps}` : '',
2834
+ breakfastColumn(r),
2835
+ cancelWords(r),
2836
+ total,
2837
+ ]
2838
+ .filter(Boolean)
2839
+ .join(' · ')}${otherLabelWords(r)} — room \`${r.id}\``;
2840
+ });
2841
+ /**
2842
+ * What the assistant is told to do with `roomChoiceRows` - in the text and,
2843
+ * word for word, in the structure (`roomChoices`): the model reads the structure.
2844
+ */
2845
+ const roomChoicesLead = (types, when) => `Say the dates first, as they are here - ${when} - then show the guest these as a numbered list, one line each, as they are here and in their language, without the room ids - ${types > ROOM_CHOICES_SHOWN
2846
+ ? `the first ${ROOM_CHOICES_SHOWN}, then "${types - ROOM_CHOICES_SHOWN} more room ${types - ROOM_CHOICES_SHOWN === 1 ? 'type' : 'types'}" in one line (the rest are below, for a guest who asks)`
2847
+ : 'every one'}. The guest answers with a number or by describing one: a number is that line's room.`;
2848
+ /**
2849
+ * Today at a hotel, for the dates offered to a guest who named none: its own
2850
+ * date where the backend gives it (`todayThere`); else the sun's, from where it
2851
+ * is (15° of longitude an hour - the Otaless backend gives no clock); else UTC's.
2852
+ */
2853
+ const todayOfHotel = (h, now) => {
2854
+ if (h.todayThere && isDay(h.todayThere))
2855
+ return h.todayThere;
2856
+ const lng = h.geo?.lng;
2857
+ return typeof lng === 'number' && Number.isFinite(lng)
2858
+ ? toDay(now + Math.max(-12, Math.min(14, Math.round(lng / 15))) * 3_600_000)
2859
+ : toDay(now);
2860
+ };
2861
+ /**
2862
+ * What a client that draws no card is told of the night a dateless answer is
2863
+ * priced for (robin 11-06: 「日期选择…文字版优化」): tonight, on the hotel's own
2864
+ * calendar, said in the reply's first sentence - with this weekend and next by
2865
+ * their weekdays and dates (`dateOptions`) as the other choices, in the same
2866
+ * sentence. Named, not numbered: the numbers in that reply are the rooms' or the
2867
+ * hotels', and "2" has to mean one thing. In the text and, word for word, in the
2868
+ * structure (`stayDefault`).
2869
+ */
2870
+ const stayDefaultWords = (today, guests, roomsAsked,
2871
+ /** What the reply numbers - the rooms of a hotel, or the hotels of a list. */
2872
+ numbers) => {
2873
+ const [tonight, ...others] = dateOptions(today);
2874
+ const rooms = Math.max(1, Math.min(MAX_ROOMS_PER_LINE, Math.floor(Number(roomsAsked) || 1)));
2875
+ return `No dates were asked for, so this is priced for tonight by default, on the ${numbers === 'rooms' ? "hotel's" : "hotels'"} own date: ${stayDayWords(tonight?.checkIn ?? today, tonight?.checkOut ?? addDays(today, 1))}, ${guests} ${guests === 1 ? 'guest' : 'guests'}, ${rooms === 1 ? 'one room' : `${rooms} rooms`}. Open your reply with that, in one sentence, and name the other nights in the same sentence as choices, by their dates - ${others
2876
+ .map((o) => `${o.label}, ${dayWords(o.checkIn)} to ${dayWords(o.checkOut)} (${o.nights} nights; checkIn ${o.checkIn}, checkOut ${o.checkOut})`)
2877
+ .join(', or ')}, or dates of their own. Do not number those: the numbers are the ${numbers}'. Never ask for dates before showing the ${numbers}; a guest who names other nights is asked again with them.`;
2878
+ };
2879
+ /**
2880
+ * The lead and the numbered rows - in the text and, word for word, in `roomChoices`.
2881
+ *
2882
+ * ⚠️ WHAT CANNOT BE BOOKED HERE IS SAID BEFORE THE LIST (robin's Manus run, 11-06,
2883
+ * via 总线程): nine Huazhu rates, every one paid in advance, and "none of these can
2884
+ * be booked here" came after all of them. `before` is that sentence, first.
2885
+ */
2886
+ const roomChoicesOf = (rooms, roomsWanted, when, before) => [
2887
+ ...(before ? [before] : []),
2888
+ roomChoicesLead(byRoomType(rooms).length, when),
2889
+ ...roomChoiceRows(rooms, roomsWanted),
2890
+ ];
2891
+ /** The sentence said before the rooms where some - or all - of them are paid in advance and not booked here. */
2892
+ const notSoldFirst = (rooms, notSold) => !notSold
2893
+ ? ''
2894
+ : rooms.length > 0 && rooms.every((r) => r.notSoldHere)
2895
+ ? `Every rate here for these nights is paid in advance, so none of them can be booked here yet - say that first, before the list. ${notSold}`
2896
+ : `${notSold} Say it before the list.`;
2762
2897
  /**
2763
2898
  * What a hotel's rooms look like to the assistant for the nights: one line per
2764
2899
  * type, and with filters only the rates that meet ALL of them. None meeting
@@ -2769,10 +2904,19 @@ const roomsText = (hotelName,
2769
2904
  /** "3 room types for 2026-11-04 to 2026-11-06, 2 guests" - what the rooms are, counted. */
2770
2905
  counted,
2771
2906
  /** "2026-11-04 to 2026-11-06" - when, for the sentence that says none fit. */
2772
- when, enough, roomsWanted, terms, noCards) => {
2907
+ when, enough, roomsWanted, terms, noCards,
2908
+ /** The nights as the guest reads them - weekdays first - for a client that draws no card. */
2909
+ saidWhen,
2910
+ /**
2911
+ * What is said before the list to a client that draws no card: rates paid in
2912
+ * advance (`notSoldFirst`), and other arrivals that cost less (`dateFlex`).
2913
+ */
2914
+ before) => {
2773
2915
  // A type with several rates is priced from its cheapest: say how to reach another.
2774
2916
  const lines = (rs) => [
2775
- ...roomTypeLines(rs, roomsWanted, terms, noCards),
2917
+ ...(noCards
2918
+ ? roomChoicesOf(rs, roomsWanted, saidWhen ?? when, before)
2919
+ : roomTypeLines(rs, roomsWanted, terms)),
2776
2920
  ...(byRoomType(rs).some((t) => t.rooms.length > 1)
2777
2921
  ? [
2778
2922
  noCards
@@ -3468,10 +3612,17 @@ const currentTrip = async (deps, key, who, store = key, coupon, ctx) => {
3468
3612
  // client that draws none - said only "name and email", so the first booking
3469
3613
  // came back "needs a phone number". Whose need it is is the trip's groups',
3470
3614
  // as `requestBooking` judges it.
3615
+ //
3616
+ // ⚠️ AND SAID BACK ONCE BEFORE IT IS BOOKED (robin 11-06: 确认下单): the card
3617
+ // shows the stay beside its Book button, and a guest who picked "the second
3618
+ // one" or "next Friday for two nights" in words has not seen what that came
3619
+ // to. One message - every stay, its nights by weekday, the room, the party,
3620
+ // the total and what cancelling costs - and a yes, or what to change. A
3621
+ // guest whose own words already named all of it, dates and all, has said it.
3471
3622
  const nextStep = ctx?.noCards && parts.some((p) => p.lines.some((l) => l.kind === 'room'))
3472
3623
  ? (deps.backend.capabilities ?? FULL_CAPABILITIES).readOnly
3473
3624
  ? readOnlyWords(deps.vocab)
3474
- : `Nothing in the trip is booked yet. To book it, ${deps.tools.requestBooking} takes the guest's own ${guestDetailsFor(deps, lines.filter((l) => l.kind === 'room'))} - ask for them if the guest has not typed them in this conversation.`
3625
+ : `Nothing in the trip is booked yet. Before booking, say it back to the guest once, in one message: each ${deps.vocab.noun}, its nights with their weekdays, the room, the guests, the total and the cancellation terms, as this answer gives them - and ask them to reply "confirm" (确认) to book it, or to say what to change. In the same message, ask for their own ${guestDetailsFor(deps, lines.filter((l) => l.kind === 'room'))} if they have not typed them in this conversation. Call ${deps.tools.requestBooking} only after that yes - unless the guest's own message just now named all of it (the ${deps.vocab.noun}, the room, the nights as dates) and asked for it to be booked, which is the yes. A guest changing the room or the nights is not adding a stay: take the old line out (its rooms to 0).`
3475
3626
  : '';
3476
3627
  if (parts.length === 1 && only) {
3477
3628
  return {
@@ -3888,7 +4039,12 @@ export const ON_CARD = {
3888
4039
  * answer said "12 Huazhu hotels in 上海." and nothing else - the hotels were on
3889
4040
  * the card - so a client that draws none had a count to tell the guest.
3890
4041
  */
3891
- export const LIST_NOT_DRAWN = "Nothing was drawn: this app shows no cards, so the guest has seen none of these hotels. Tell them in your reply - each one's name, area and price as given here:";
4042
+ /**
4043
+ * How many hotels of a list a client that draws no card shows the guest at once
4044
+ * (总线程 11-06, after RollingGo's text answers): the rest are a count.
4045
+ */
4046
+ export const HOTEL_CHOICES_SHOWN = 6;
4047
+ export const LIST_NOT_DRAWN = `Nothing was drawn: this app shows no cards, so the guest has seen none of these hotels. Tell them in your reply as a numbered list, in this order and with these numbers - each one's name; a short line with where it is, its price and what it has; and its tags, where it has any, as one more short line - as given here and nothing that is not - at most ${HOTEL_CHOICES_SHOWN}, and any more as a count the guest can ask for, never a pick of your own. The guest answers with a number or a name:`;
3892
4048
  /**
3893
4049
  * One hotel of a list as a line, for a client that shows no cards.
3894
4050
  *
@@ -3899,7 +4055,7 @@ export const LIST_NOT_DRAWN = "Nothing was drawn: this app shows no cards, so th
3899
4055
  * can be booked. Each priced line says how its rate is paid and what it costs
3900
4056
  * to cancel, as the card's tile does.
3901
4057
  */
3902
- const listedInWords = (h) => {
4058
+ const listedInWords = (h, n, tags = []) => {
3903
4059
  const where = [h.area, h.city]
3904
4060
  .filter((x) => !!x)
3905
4061
  .map((x) => hotelName(x))
@@ -3930,8 +4086,64 @@ const listedInWords = (h) => {
3930
4086
  : h.fromNightly
3931
4087
  ? `from ${formatMoney(h.fromNightly)} ${nightWords(true, h.fromNightlyTaxes === 'unknown')}`
3932
4088
  : '';
3933
- return `- ${withZh(h.name, h.names?.name, true)} (\`${h.id}\`)${where ? ` · ${where}` : ''}${price ? `: ${price}` : ''}`;
4089
+ // ⚠️ ONLY WHAT THE GROUP SAYS OF IT (总线程 11-06): its brand where the name
4090
+ // does not carry it, its rating where there is one, and a few of its own
4091
+ // facilities - a short line the guest can tell hotels apart by, nothing made up.
4092
+ const brand = h.brand && !hotelName(h.name).toLowerCase().includes(h.brand.toLowerCase())
4093
+ ? hotelName(h.brand)
4094
+ : '';
4095
+ const rated = h.rating
4096
+ ? `rated ${h.rating.value}/${h.rating.scaleMax}${h.rating.count ? ` from ${h.rating.count} reviews` : ''}`
4097
+ : '';
4098
+ const has = h.amenities.slice(0, 3).map(hotelName).filter(Boolean);
4099
+ return `${n}. ${withZh(h.name, h.names?.name, true)} (\`${h.id}\`)${[where, brand, rated]
4100
+ .filter(Boolean)
4101
+ .map((x) => ` · ${x}`)
4102
+ .join('')}${price ? `: ${price}` : ''}${has.length ? `; has ${has.join(', ')}` : ''}${tags.length ? `\n tags: ${tags.join(' · ')}` : ''}`;
3934
4103
  };
4104
+ /**
4105
+ * What sets each hotel of a list apart, from what the list itself says (总线程
4106
+ * 11-06, after RollingGo's text answers - "Most central · 5-star · SGD 244"): the
4107
+ * lowest price and the best rating among them, and a stay's own free cancelling
4108
+ * and breakfast. Never a word the data does not carry - a distance is not given,
4109
+ * so none is said.
4110
+ */
4111
+ const listTagsOf = (hotels) => {
4112
+ const priceOf = (h) => h.forStay?.total ?? h.fromNightly;
4113
+ const priced = hotels.filter((h) => priceOf(h));
4114
+ const oneCurrency = new Set(priced.map((h) => priceOf(h)?.currency)).size === 1;
4115
+ const lowest = priced.length > 1 && oneCurrency
4116
+ ? Math.min(...priced.map((h) => priceOf(h)?.minor ?? Number.POSITIVE_INFINITY))
4117
+ : undefined;
4118
+ const score = (h) => (h.rating ? h.rating.value / h.rating.scaleMax : -1);
4119
+ const rated = hotels.filter((h) => h.rating);
4120
+ const best = rated.length > 1 ? Math.max(...rated.map(score)) : undefined;
4121
+ const breakfast = (h) => !!h.forStay &&
4122
+ ((!!h.forStay.meal && h.forStay.meal.plan !== 'none') ||
4123
+ (h.forStay.labels ?? []).some((l) => l.startsWith('breakfast')));
4124
+ const free = (h) => !!h.forStay?.freeCancellation;
4125
+ // A tag every one of them would carry sets none apart.
4126
+ const apart = (has) => !hotels.every(has);
4127
+ return hotels.map((h) => [
4128
+ lowest !== undefined && priceOf(h)?.minor === lowest ? 'lowest price in this list' : '',
4129
+ best !== undefined && score(h) === best ? 'best rated in this list' : '',
4130
+ free(h) && apart(free) ? 'free to cancel' : '',
4131
+ breakfast(h) && apart(breakfast) ? 'breakfast included' : '',
4132
+ ].filter(Boolean));
4133
+ };
4134
+ /**
4135
+ * What a client that draws no card is told of a list asked for without dates
4136
+ * (总线程 11-06, robin's Manus run: an Atour list said only "from ¥368 a night",
4137
+ * and the model asked the dates, the party, the rooms, the area, the budget,
4138
+ * breakfast and cancelling all at once). Its prices are from-prices, said in
4139
+ * the reply's first sentence with the nights they could be priced for by their
4140
+ * dates (`dateOptions`) - and nothing asked before the list. A list is not
4141
+ * priced for tonight as a hotel's page is: a city is up to twenty quotes, and the
4142
+ * guest opens one hotel next, which is. In both, in the same words (`stayDefault`).
4143
+ */
4144
+ const fromPricesWords = (today) => `No dates were asked for, so each price here is that hotel's from-price - its lowest rate a night, not a stay. Open your reply with that in one sentence, and in the same sentence name the nights it can be priced for, by their dates: ${dateOptions(today)
4145
+ .map((o) => `${o.label}, ${dayWords(o.checkIn)} to ${dayWords(o.checkOut)}`)
4146
+ .join('; ')} - or dates of their own. Do not number those: the numbers are the hotels'. Ask nothing else first - no budget, area, breakfast or cancelling questions: the list is the answer.`;
3935
4147
  /**
3936
4148
  * One column of a comparison as a line, for a client that shows no cards:
3937
4149
  * what the card's rows say - where, the rating, the room, the price - and the
@@ -5169,7 +5381,12 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5169
5381
  // rides along into the priced list, and every price in it is two rooms'.
5170
5382
  const roomCount = ask.rooms ?? 1;
5171
5383
  // In both, in the same words: the model reads the structure.
5172
- const stayDefault = `No dates were asked for, so this opens on tonight by default: ${tonight.checkIn} to ${tonight.checkOut} (one night, on the hotels' own date), ${tonight.guests} ${tonight.guests === 1 ? 'guest' : 'guests'}, ${roomCount === 1 ? 'one room' : `${roomCount} rooms`} - every price here is for that night. Say so: the prices shown are tonight's, and the guest can ${ctx.noCards ? 'name other dates' : 'change the dates on the card or name others'}. Do not ask for dates before showing them.`;
5384
+ // ⚠️ TO A CLIENT THAT DRAWS NO CARD, THE OTHER NIGHTS ARE NAMED BY THEIR
5385
+ // DATES (robin 11-06): the card has a date bar to change; in words it is
5386
+ // the reply's first sentence - see `stayDefaultWords`.
5387
+ const stayDefault = ctx.noCards
5388
+ ? stayDefaultWords(tonight.checkIn, tonight.guests, roomCount, 'hotels')
5389
+ : `No dates were asked for, so this opens on tonight by default: ${tonight.checkIn} to ${tonight.checkOut} (one night, on the hotels' own date), ${tonight.guests} ${tonight.guests === 1 ? 'guest' : 'guests'}, ${roomCount === 1 ? 'one room' : `${roomCount} rooms`} - every price here is for that night. Say so: the prices shown are tonight's, and the guest can change the dates on the card or name others. Do not ask for dates before showing them.`;
5173
5390
  // Right after what is here - "every one, and no others" stays the first thing said.
5174
5391
  const inAll = String(priced.structured.inAll ?? '');
5175
5392
  return {
@@ -5459,6 +5676,19 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5459
5676
  const notSold = notSoldOn ? notSoldHereWords(groupNameOf(deps, notSoldOn.id)) : '';
5460
5677
  if (notSold)
5461
5678
  priceNotes.push(notSold);
5679
+ // To a client that draws no card, the hotels as numbered lines - numbered
5680
+ // across pages, so "the 23rd" on the second page is still one hotel. In the
5681
+ // text and, word for word, in the structure (`hotelChoices`).
5682
+ const tagsOf = ctx.noCards ? listTagsOf(hotels) : [];
5683
+ const hotelChoices = ctx.noCards && hotels.length
5684
+ ? hotels.map((h, i) => listedInWords(h, offset + i + 1, tagsOf[i])).join('\n')
5685
+ : '';
5686
+ // …and, asked without dates, what its prices are - first of the notes.
5687
+ const fromPrices = ctx.noCards && hotels.length && !ask.stay && !ask.filters?.hourly
5688
+ ? fromPricesWords(today?.min ?? todayOfHotel(hotels[0], deps.trips.now()))
5689
+ : '';
5690
+ if (fromPrices)
5691
+ priceNotes.unshift(fromPrices);
5462
5692
  // Every one by name and city, and that there are no others - or, told
5463
5693
  // only "2 hotels", the model asked for the list again to learn which.
5464
5694
  const degraded = degradedOf(deps, answer, undefined, ctx?.noCards);
@@ -5523,6 +5753,8 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5523
5753
  // In both, like a plan's: a host with no card may hand its model this
5524
5754
  // rather than the text.
5525
5755
  ...(ctx.noCards ? { notDrawn: LIST_NOT_DRAWN } : {}),
5756
+ ...(hotelChoices ? { hotelChoices } : {}),
5757
+ ...(fromPrices ? { stayDefault: fromPrices } : {}),
5526
5758
  ...(ctx.drawsCards && hotels.length ? { cardShows: ON_CARD.hotels } : {}),
5527
5759
  ...(notSold ? { notSoldHere: notSold } : {}),
5528
5760
  },
@@ -5540,9 +5772,7 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5540
5772
  ...priceNotes,
5541
5773
  widened?.found ? `Nothing matched ${widened.from}, so this is ${widened.to}.` : '',
5542
5774
  degraded.said,
5543
- ctx.noCards && hotels.length
5544
- ? `\n${LIST_NOT_DRAWN}\n${hotels.map(listedInWords).join('\n')}\n`
5545
- : '',
5775
+ hotelChoices ? `\n${LIST_NOT_DRAWN}\n${hotelChoices}\n` : '',
5546
5776
  ctx.drawsCards && hotels.length ? ON_CARD.hotels : '',
5547
5777
  forPlans,
5548
5778
  ]
@@ -5597,6 +5827,31 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5597
5827
  ? { policies: policies.map((p) => ({ topic: p.topic, title: p.title })) }
5598
5828
  : {}),
5599
5829
  };
5830
+ // ⚠️ TO A CLIENT THAT DRAWS NO CARD, NO DATES IS TONIGHT, PRICED - AND SAID
5831
+ // (robin 11-06, with 总线程 after RollingGo and robin's Manus run): the card
5832
+ // fills in tonight itself, so a guest who can tap sees rooms at once; in
5833
+ // words, "which nights?" was a turn with nothing to look at. Tonight on the
5834
+ // hotel's own calendar, as the card and a short list open (robin 10-30:
5835
+ // 「默认今晚并直接出价」); the answer opens on that default and on this
5836
+ // weekend and next by their dates - see `stayDefaultWords`.
5837
+ if (!stay && ctx.noCards && !byTheHour) {
5838
+ const today = todayOfHotel(h, deps.trips.now());
5839
+ const priced = await answerTool(deps, t.getHotel, {
5840
+ ...args,
5841
+ hotel: h.id,
5842
+ checkIn: today,
5843
+ checkOut: addDays(today, 1),
5844
+ guests: guestsOf(args),
5845
+ }, ctx);
5846
+ const stayDefault = stayDefaultWords(today, guestsOf(args), args.rooms, 'rooms');
5847
+ return {
5848
+ ...priced,
5849
+ // In both, in the same words: the model reads the structure.
5850
+ structured: { ...priced.structured, stayDefault },
5851
+ // The hotel's own words stay: a dateless question is often "what is it like".
5852
+ text: [stayDefault, description.fenced, priced.text].filter(Boolean).join('\n\n'),
5853
+ };
5854
+ }
5600
5855
  if (!stay) {
5601
5856
  return {
5602
5857
  // ⚠️ THE FILTERS RIDE ALONG WITHOUT DATES: the card prices the dates
@@ -5723,11 +5978,34 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5723
5978
  ...(r.freeCancellationUntil ? { freeCancellationLocal: freeUntilText(r) } : {}),
5724
5979
  }));
5725
5980
  const memberRates = memberRatesOf(enough, roomsWanted);
5981
+ // To a client that draws no card, the rooms are numbered choices - in the
5982
+ // text and, word for word, here: the model reads the structure.
5983
+ const choosable = terms ? enough.filter((r) => matchesTerms(r, terms)) : enough;
5984
+ // The other arrivals are priced on the cheapest room of any kind.
5985
+ const flexSaid = terms && flex.text
5986
+ ? `${flex.text} (That is the cheapest room of any kind, not only one with ${termWords(terms)}.)`
5987
+ : flex.text;
5988
+ // ⚠️ BEFORE THE LIST, NOT AFTER IT (总线程 11-06, robin's Manus run): "arriving
5989
+ // the 18th is ¥253 less", last in the answer, was never passed on; and "none of
5990
+ // these can be booked here" after nine rates was said last.
5991
+ const before = [
5992
+ notSoldFirst(choosable, notSold),
5993
+ flexSaid ? `${flexSaid} Say that in one sentence before the list too.` : '',
5994
+ ]
5995
+ .filter(Boolean)
5996
+ .join(' ');
5997
+ const saidWhen = byTheHour
5998
+ ? `today, ${dayWords(stay.checkIn)}, ${stay.guests} ${stay.guests === 1 ? 'guest' : 'guests'}`
5999
+ : `${stayDayWords(stay.checkIn, stay.checkOut)}, ${stay.guests} ${stay.guests === 1 ? 'guest' : 'guests'}${roomsWanted > 1 ? `, ${roomsWanted} rooms` : ''}`;
6000
+ const roomChoices = ctx.noCards && choosable.length
6001
+ ? roomChoicesOf(choosable, roomsWanted, saidWhen, before).join('\n')
6002
+ : undefined;
5726
6003
  return {
5727
6004
  structured: {
5728
6005
  view: 'hotel',
5729
6006
  ...base,
5730
6007
  stay,
6008
+ ...(roomChoices ? { roomChoices } : {}),
5731
6009
  rooms,
5732
6010
  rooms_wanted: roomsWanted,
5733
6011
  roomFilters: optionsOf(enough),
@@ -5743,12 +6021,14 @@ const answerTool = async (deps, name, rawArgs, ctx) => {
5743
6021
  memberRates?.said ?? '',
5744
6022
  ...roomsText(ctx.noCards ? withZh(h.name, h.names?.name, true) : h.name, byTheHour
5745
6023
  ? (rs) => `${rs.length} ${rs.length === 1 ? 'room' : 'rooms'} by the hour for today, ${stay.checkIn}, ${stay.guests} guests`
5746
- : (rs) => `${offerCount(rs)} for ${stay.checkIn} to ${stay.checkOut}, ${stay.guests} guests${roomsWanted > 1 ? `, ${roomsWanted} rooms` : ''}`, byTheHour ? `today, ${stay.checkIn}` : `${stay.checkIn} to ${stay.checkOut}`, enough, roomsWanted, terms, ctx.noCards),
5747
- // The other arrivals are priced on the cheapest room of any kind.
5748
- terms && flex.text
5749
- ? `${flex.text} (That is the cheapest room of any kind, not only one with ${termWords(terms)}.)`
5750
- : flex.text,
5751
- notSold,
6024
+ : (rs) =>
6025
+ // ⚠️ THE WEEKDAYS, to a client that draws no card: the dates
6026
+ // the model worked out of 「下周五住两晚」 are said back as the
6027
+ // guest can check them (robin 11-06).
6028
+ `${offerCount(rs)} for ${ctx.noCards ? `${stayDayWords(stay.checkIn, stay.checkOut)}, ${stay.checkIn} to ${stay.checkOut}` : `${stay.checkIn} to ${stay.checkOut}`}, ${stay.guests} guests${roomsWanted > 1 ? `, ${roomsWanted} rooms` : ''}`, byTheHour ? `today, ${stay.checkIn}` : `${stay.checkIn} to ${stay.checkOut}`, enough, roomsWanted, terms, ctx.noCards, saidWhen, before),
6029
+ // Said before the list to a client that draws no card (`before`).
6030
+ ctx.noCards && choosable.length ? '' : flexSaid,
6031
+ ctx.noCards && choosable.length ? '' : notSold,
5752
6032
  ctx.drawsCards && enough.length ? ON_CARD.rooms : '',
5753
6033
  ]
5754
6034
  .filter(Boolean)