@curless/hotel-storefront 0.13.0 → 0.13.1

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.
package/dist/server.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare const PROTOCOL_VERSION = "2025-06-18";
16
16
  * number. Found by reading the boot banner of a container that had just been
17
17
  * deployed (2026-09-22): seventeen tools listed, and "0.7.0" above them.
18
18
  */
19
- export declare const VERSION = "0.12.0";
19
+ export declare const VERSION = "0.13.1";
20
20
  /**
21
21
  * The card's resource URI.
22
22
  *
@@ -25,7 +25,7 @@ export declare const VERSION = "0.12.0";
25
25
  * connector went storefront-v35 → v40 in a single day of UI work for exactly
26
26
  * this reason.
27
27
  */
28
- export declare const CARD_URI = "ui://curless/hotel/booking-v20.html";
28
+ export declare const CARD_URI = "ui://curless/hotel/booking-v21.html";
29
29
  /**
30
30
  * ⚠️ `text/html;profile=mcp-app`, not `text/html+skybridge`. The MIME is how a
31
31
  * host recognises this resource as a card at all; the plausible near-miss made
@@ -41,10 +41,10 @@ export declare const CARD_MIME = "text/html;profile=mcp-app";
41
41
  */
42
42
  export declare const UI_META: {
43
43
  readonly ui: {
44
- readonly resourceUri: "ui://curless/hotel/booking-v20.html";
44
+ readonly resourceUri: "ui://curless/hotel/booking-v21.html";
45
45
  };
46
- readonly 'ui/resourceUri': "ui://curless/hotel/booking-v20.html";
47
- readonly 'openai/outputTemplate': "ui://curless/hotel/booking-v20.html";
46
+ readonly 'ui/resourceUri': "ui://curless/hotel/booking-v21.html";
47
+ readonly 'openai/outputTemplate': "ui://curless/hotel/booking-v21.html";
48
48
  readonly 'openai/widgetAccessible': true;
49
49
  };
50
50
  /**
@@ -63,14 +63,14 @@ export declare const widgetMeta: (imageDomains: string[]) => {
63
63
  csp: {
64
64
  resourceDomains: string[];
65
65
  };
66
- resourceUri: "ui://curless/hotel/booking-v20.html";
66
+ resourceUri: "ui://curless/hotel/booking-v21.html";
67
67
  };
68
68
  'openai/widgetCSP': {
69
69
  connect_domains: never[];
70
70
  resource_domains: string[];
71
71
  };
72
- 'ui/resourceUri': "ui://curless/hotel/booking-v20.html";
73
- 'openai/outputTemplate': "ui://curless/hotel/booking-v20.html";
72
+ 'ui/resourceUri': "ui://curless/hotel/booking-v21.html";
73
+ 'openai/outputTemplate': "ui://curless/hotel/booking-v21.html";
74
74
  'openai/widgetAccessible': true;
75
75
  };
76
76
  /** The trip snapshot that rides beside every answer, for the card's header. */
package/dist/server.js CHANGED
@@ -29,7 +29,7 @@ export const PROTOCOL_VERSION = '2025-06-18';
29
29
  * number. Found by reading the boot banner of a container that had just been
30
30
  * deployed (2026-09-22): seventeen tools listed, and "0.7.0" above them.
31
31
  */
32
- export const VERSION = '0.12.0';
32
+ export const VERSION = '0.13.1';
33
33
  /**
34
34
  * The card's resource URI.
35
35
  *
@@ -38,7 +38,7 @@ export const VERSION = '0.12.0';
38
38
  * connector went storefront-v35 → v40 in a single day of UI work for exactly
39
39
  * this reason.
40
40
  */
41
- export const CARD_URI = 'ui://curless/hotel/booking-v20.html';
41
+ export const CARD_URI = 'ui://curless/hotel/booking-v21.html';
42
42
  /**
43
43
  * ⚠️ `text/html;profile=mcp-app`, not `text/html+skybridge`. The MIME is how a
44
44
  * host recognises this resource as a card at all; the plausible near-miss made
package/dist/surface.js CHANGED
@@ -77,7 +77,7 @@ export const buildInstructions = (brand) => {
77
77
  `An itinerary is a PLAN. Name the ${v.noun} on every day the guest sleeps there: consecutive days at one ${v.noun} are one stay of that many nights, and the day they leave needs none. ${t.itinerary} marks each stay as booked, in the trip, or only planned, and says how many of each; say so too, and never describe a planned stay as booked. Putting something in the trip is ${t.addToTrip}, and ${t.requestBooking} is what asks for the rooms.`,
78
78
  // ⚠️ ONE BOOKING PER STAY. Said to the model so it does not tell a guest
79
79
  // that cancelling "the booking" cancels the whole trip.
80
- `A trip of more than one stay is requested together and held as one booking per stay, each with its own confirmation code - each hotel holds its own nights. It is all or nothing: if one stay cannot be held, nothing is, and the answer says which. A change or a cancellation is made to one booking, by its code, and leaves the others as they are.`,
80
+ 'A trip of more than one stay is requested together and held as one booking per stay, each with its own confirmation code - each hotel holds its own nights. It is all or nothing: if one stay cannot be held, nothing is, and the answer says which. A change or a cancellation is made to one booking, by its code, and leaves the others as they are.',
81
81
  `Questions about cancellation terms, check-in and check-out, children, pets, deposits or accessibility: call ${t.policies} with that topic and answer from what the ${v.noun} has published. If it does not say, tell the guest that and give the ${v.noun}'s link; do not fill in what hotels usually do.`,
82
82
  `Availability is what the ${v.noun} says it has. Report a low room count as a fact if the guest asks; do not turn it into a reason to hurry.`,
83
83
  FENCE_RULE,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curless/hotel-storefront",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "type": "module",
5
5
  "description": "One hotel-booking MCP connector, driven by a config file. Brand, tool names, vocabulary and where the rooms come from live in a HotelConfig, so the second hotel group is a JSON file rather than a fork.",
6
6
  "keywords": [