@curless/hotel-storefront 0.26.1 → 0.27.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.
Files changed (50) hide show
  1. package/dist/__tests__/audit-p0.test.d.ts +2 -0
  2. package/dist/__tests__/audit-p0.test.d.ts.map +1 -0
  3. package/dist/__tests__/audit-p0.test.js +274 -0
  4. package/dist/__tests__/audit-p0.test.js.map +1 -0
  5. package/dist/__tests__/card-contract.test.js +15 -0
  6. package/dist/__tests__/card-contract.test.js.map +1 -1
  7. package/dist/__tests__/demo-hotels.test.js +2 -1
  8. package/dist/__tests__/demo-hotels.test.js.map +1 -1
  9. package/dist/__tests__/huazhu-audit.test.js +5 -0
  10. package/dist/__tests__/huazhu-audit.test.js.map +1 -1
  11. package/dist/__tests__/huazhu-backend.test.js +30 -0
  12. package/dist/__tests__/huazhu-backend.test.js.map +1 -1
  13. package/dist/__tests__/tools.test.js +13 -7
  14. package/dist/__tests__/tools.test.js.map +1 -1
  15. package/dist/backend.d.ts +30 -0
  16. package/dist/backend.d.ts.map +1 -1
  17. package/dist/backend.js +37 -0
  18. package/dist/backend.js.map +1 -1
  19. package/dist/card.generated.d.ts +1 -1
  20. package/dist/card.generated.js +2 -2
  21. package/dist/card.generated.js.map +1 -1
  22. package/dist/demo-hotels.d.ts +14 -0
  23. package/dist/demo-hotels.d.ts.map +1 -1
  24. package/dist/demo-hotels.js +100 -12
  25. package/dist/demo-hotels.js.map +1 -1
  26. package/dist/legal.d.ts.map +1 -1
  27. package/dist/legal.js +8 -4
  28. package/dist/legal.js.map +1 -1
  29. package/dist/limits.d.ts +10 -0
  30. package/dist/limits.d.ts.map +1 -1
  31. package/dist/limits.js +42 -5
  32. package/dist/limits.js.map +1 -1
  33. package/dist/server.d.ts +19 -8
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +71 -8
  36. package/dist/server.js.map +1 -1
  37. package/dist/sessions.d.ts +31 -4
  38. package/dist/sessions.d.ts.map +1 -1
  39. package/dist/sessions.js +66 -15
  40. package/dist/sessions.js.map +1 -1
  41. package/dist/state.d.ts +16 -0
  42. package/dist/state.d.ts.map +1 -1
  43. package/dist/state.js +33 -3
  44. package/dist/state.js.map +1 -1
  45. package/dist/tools.d.ts.map +1 -1
  46. package/dist/tools.js +63 -18
  47. package/dist/tools.js.map +1 -1
  48. package/dist/types.d.ts +9 -0
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +1 -1
package/dist/legal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"legal.js","sourceRoot":"","sources":["../src/legal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"legal.js","sourceRoot":"","sources":["../src/legal.ts"],"names":[],"mappings":"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"}
package/dist/limits.d.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  export declare const MISS_WINDOW_MS: number;
2
2
  export declare const MAX_MISSES = 5;
3
+ /**
4
+ * Misses one network address may make before its lookups wait.
5
+ *
6
+ * Higher than the rest because an address is not a person: every Claude user
7
+ * reaches this connector from a handful of Anthropic's addresses, and five
8
+ * wrong guesses among all of them must not lock all of them out. It is there
9
+ * for the script that gives a new conversation, or none, to every guess
10
+ * (2026-10-05 audit); fifty a quarter of an hour still stops that.
11
+ */
12
+ export declare const MAX_IP_MISSES = 50;
3
13
  export declare class Misses {
4
14
  private readonly now;
5
15
  private readonly byKey;
@@ -1 +1 @@
1
- {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,UAAU,IAAI,CAAC;AAG5B,qBAAa,MAAM;IAGL,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;gBAExB,GAAG,GAAE,MAAM,MAAyB;IAEjE,kFAAkF;IAClF,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAOhC,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;CAe3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,8GAA8G;IAC9G,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC;AAEF,eAAO,MAAM,OAAO,QAAc,CAAC;AACnC,eAAO,MAAM,MAAM,QAAe,CAAC;AAEnC;;;;GAIG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;gBAGlC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,MAAyB,EACpC,OAAO,SAAW;IAGrC,4CAA4C;IAC5C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK1B,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAavB"}
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAMhC,qBAAa,MAAM;IAGL,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;gBAExB,GAAG,GAAE,MAAM,MAAyB;IAEjE,kFAAkF;IAClF,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAOhC,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;CAuB3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,8GAA8G;IAC9G,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC;AAEF,eAAO,MAAM,OAAO,QAAc,CAAC;AACnC,eAAO,MAAM,MAAM,QAAe,CAAC;AAEnC;;;;GAIG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;gBAGlC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,MAAyB,EACpC,OAAO,SAAW;IAGrC,4CAA4C;IAC5C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK1B,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAwBvB"}
package/dist/limits.js CHANGED
@@ -14,7 +14,19 @@
14
14
  // and bounded.
15
15
  export const MISS_WINDOW_MS = 15 * 60_000;
16
16
  export const MAX_MISSES = 5;
17
+ /**
18
+ * Misses one network address may make before its lookups wait.
19
+ *
20
+ * Higher than the rest because an address is not a person: every Claude user
21
+ * reaches this connector from a handful of Anthropic's addresses, and five
22
+ * wrong guesses among all of them must not lock all of them out. It is there
23
+ * for the script that gives a new conversation, or none, to every guess
24
+ * (2026-10-05 audit); fifty a quarter of an hour still stops that.
25
+ */
26
+ export const MAX_IP_MISSES = 50;
17
27
  const MAX_KEYS = 10_000;
28
+ /** How many misses a key may have: an address gets more - see MAX_IP_MISSES. */
29
+ const limitOf = (key) => (key.startsWith('ip|') ? MAX_IP_MISSES : MAX_MISSES);
18
30
  export class Misses {
19
31
  now;
20
32
  byKey = new Map();
@@ -24,7 +36,7 @@ export class Misses {
24
36
  /** True when any of these has missed too often in the last quarter of an hour. */
25
37
  blocked(keys) {
26
38
  const cutoff = this.now() - MISS_WINDOW_MS;
27
- return keys.some((k) => (this.byKey.get(k) ?? []).filter((t) => t > cutoff).length >= MAX_MISSES);
39
+ return keys.some((k) => (this.byKey.get(k) ?? []).filter((t) => t > cutoff).length >= limitOf(k));
28
40
  }
29
41
  /** One miss, against every key it touched. */
30
42
  miss(keys) {
@@ -34,7 +46,18 @@ export class Misses {
34
46
  const recent = (this.byKey.get(k) ?? []).filter((x) => x > cutoff);
35
47
  recent.push(t);
36
48
  this.byKey.delete(k);
37
- this.byKey.set(k, recent.slice(-MAX_MISSES));
49
+ this.byKey.set(k, recent.slice(-limitOf(k)));
50
+ }
51
+ if (this.byKey.size <= MAX_KEYS)
52
+ return;
53
+ // ⚠️ NOT FIRST-IN-FIRST-OUT, as in WindowCounter below: enough fresh keys
54
+ // would otherwise push a counted one out and so reset it. Keys with no
55
+ // miss left in the window go first; only then the one idle longest.
56
+ for (const [k, times] of this.byKey) {
57
+ if (this.byKey.size <= MAX_KEYS)
58
+ return;
59
+ if (!times.some((x) => x > cutoff))
60
+ this.byKey.delete(k);
38
61
  }
39
62
  while (this.byKey.size > MAX_KEYS) {
40
63
  const oldest = this.byKey.keys().next().value;
@@ -79,13 +102,27 @@ export class WindowCounter {
79
102
  const cutoff = t - this.windowMs;
80
103
  const recent = (this.byKey.get(key) ?? []).filter((x) => x > cutoff);
81
104
  recent.push(t);
105
+ // Re-inserted, so the map's order is "least recently counted first".
82
106
  this.byKey.delete(key);
83
107
  this.byKey.set(key, recent);
108
+ if (this.byKey.size <= this.maxKeys)
109
+ return;
110
+ // ⚠️ NOT FIRST-IN-FIRST-OUT. Evicting the oldest key outright let anyone
111
+ // with enough fresh keys push a counted one out of the map and so reset
112
+ // it (香格里拉's review, 2026-10-05). Keys whose every event has left the
113
+ // window go first - forgetting them changes no count. Only when every key
114
+ // is still counting does the one idle longest go.
115
+ for (const [k, times] of this.byKey) {
116
+ if (this.byKey.size <= this.maxKeys)
117
+ return;
118
+ if (!times.some((x) => x > cutoff))
119
+ this.byKey.delete(k);
120
+ }
84
121
  while (this.byKey.size > this.maxKeys) {
85
- const oldest = this.byKey.keys().next().value;
86
- if (oldest === undefined)
122
+ const idlest = this.byKey.keys().next().value;
123
+ if (idlest === undefined || idlest === key)
87
124
  break;
88
- this.byKey.delete(oldest);
125
+ this.byKey.delete(idlest);
89
126
  }
90
127
  }
91
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -7,6 +7,17 @@ import { TripIds } from './trip-ids.js';
7
7
  import { TripStore } from './trip.js';
8
8
  import { type ResolvedBrand } from './vocab.js';
9
9
  export declare const PROTOCOL_VERSION = "2025-06-18";
10
+ /**
11
+ * The largest request /mcp reads. Caddy refuses bigger ones first (P0-1,
12
+ * 2026-10-05); this is the same line for a server run without it.
13
+ */
14
+ export declare const MAX_BODY_BYTES: number;
15
+ /**
16
+ * `initialize` calls one address may make in a minute. Wide, because every
17
+ * Claude user arrives from a handful of Anthropic's addresses - it is there for
18
+ * the hundred thousand in seven seconds (sessions.ts), not for anybody using it.
19
+ */
20
+ export declare const INITIALIZE_PER_MINUTE = 300;
10
21
  /**
11
22
  * What this server tells the world it is - on `/healthz`, in the MCP
12
23
  * `initialize` handshake, and in the line it logs at boot.
@@ -17,7 +28,7 @@ export declare const PROTOCOL_VERSION = "2025-06-18";
17
28
  * number. Found by reading the boot banner of a container that had just been
18
29
  * deployed (2026-09-22): seventeen tools listed, and "0.7.0" above them.
19
30
  */
20
- export declare const VERSION = "0.26.1";
31
+ export declare const VERSION = "0.27.0";
21
32
  /**
22
33
  * The card's resource URI.
23
34
  *
@@ -26,7 +37,7 @@ export declare const VERSION = "0.26.1";
26
37
  * connector went storefront-v35 → v40 in a single day of UI work for exactly
27
38
  * this reason.
28
39
  */
29
- export declare const CARD_URI = "ui://curless/hotel/booking-v44.html";
40
+ export declare const CARD_URI = "ui://curless/hotel/booking-v46.html";
30
41
  /**
31
42
  * ⚠️ `text/html;profile=mcp-app`, not `text/html+skybridge`. The MIME is how a
32
43
  * host recognises this resource as a card at all; the plausible near-miss made
@@ -42,10 +53,10 @@ export declare const CARD_MIME = "text/html;profile=mcp-app";
42
53
  */
43
54
  export declare const UI_META: {
44
55
  readonly ui: {
45
- readonly resourceUri: "ui://curless/hotel/booking-v44.html";
56
+ readonly resourceUri: "ui://curless/hotel/booking-v46.html";
46
57
  };
47
- readonly 'ui/resourceUri': "ui://curless/hotel/booking-v44.html";
48
- readonly 'openai/outputTemplate': "ui://curless/hotel/booking-v44.html";
58
+ readonly 'ui/resourceUri': "ui://curless/hotel/booking-v46.html";
59
+ readonly 'openai/outputTemplate': "ui://curless/hotel/booking-v46.html";
49
60
  readonly 'openai/widgetAccessible': true;
50
61
  };
51
62
  /**
@@ -64,14 +75,14 @@ export declare const widgetMeta: (imageDomains: string[]) => {
64
75
  csp: {
65
76
  resourceDomains: string[];
66
77
  };
67
- resourceUri: "ui://curless/hotel/booking-v44.html";
78
+ resourceUri: "ui://curless/hotel/booking-v46.html";
68
79
  };
69
80
  'openai/widgetCSP': {
70
81
  connect_domains: never[];
71
82
  resource_domains: string[];
72
83
  };
73
- 'ui/resourceUri': "ui://curless/hotel/booking-v44.html";
74
- 'openai/outputTemplate': "ui://curless/hotel/booking-v44.html";
84
+ 'ui/resourceUri': "ui://curless/hotel/booking-v46.html";
85
+ 'openai/outputTemplate': "ui://curless/hotel/booking-v46.html";
75
86
  'openai/widgetAccessible': true;
76
87
  };
77
88
  /** The trip snapshot that rides beside every answer, for the card's header. */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAW,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,YAAY,CAAC;AAS9D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,wCAAwC,CAAC;AAC9D;;;;;GAKG;AACH,eAAO,MAAM,SAAS,8BAA8B,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;CAKV,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,cAAc,MAAM,EAAE;;;;;;;;;;;;;;CAI/C,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,IAAI,CAAC;IACV,yEAAyE;IACzE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AA2IF,eAAO,MAAM,WAAW,GAAI,MAAM,aAAa,KAAG,WAmUjD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,KAC9D,MAAM,EAIR,CAAC;AAWF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAG9D,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAGlF,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,IAAI,EAAE,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAW,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,YAAY,CAAC;AAS9D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,wCAAwC,CAAC;AAC9D;;;;;GAKG;AACH,eAAO,MAAM,SAAS,8BAA8B,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;CAKV,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,cAAc,MAAM,EAAE;;;;;;;;;;;;;;CAI/C,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,IAAI,CAAC;IACV,yEAAyE;IACzE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AA2IF,eAAO,MAAM,WAAW,GAAI,MAAM,aAAa,KAAG,WA+XjD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,KAC9D,MAAM,EAIR,CAAC;AAWF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAG9D,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAGlF,CAAC"}
package/dist/server.js CHANGED
@@ -2,6 +2,7 @@ import { randomUUID } from 'node:crypto';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { dirname, resolve } from 'node:path';
4
4
  import { Hono } from 'hono';
5
+ import { bodyLimit } from 'hono/body-limit';
5
6
  import { FULL_CAPABILITIES } from './backend.js';
6
7
  import { HOTEL_CARD_HTML } from './card.generated.js';
7
8
  import { loadHotelData } from './data.js';
@@ -11,7 +12,7 @@ import { BookingStore, Reconciler } from './huazhu/bookings.js';
11
12
  import { Catalog } from './huazhu/catalog.js';
12
13
  import { HuazhuClient } from './huazhu/client.js';
13
14
  import { docsPage, privacyPage, termsPage } from './legal.js';
14
- import { Misses } from './limits.js';
15
+ import { Misses, WindowCounter } from './limits.js';
15
16
  import { MemberStore } from './members.js';
16
17
  import { Sessions } from './sessions.js';
17
18
  import { StateDir } from './state.js';
@@ -27,6 +28,17 @@ import { resolveBrand } from './vocab.js';
27
28
  // that a host actually talks to, and the few protocol facts that were each
28
29
  // learned by getting them wrong somewhere else in this repo.
29
30
  export const PROTOCOL_VERSION = '2025-06-18';
31
+ /**
32
+ * The largest request /mcp reads. Caddy refuses bigger ones first (P0-1,
33
+ * 2026-10-05); this is the same line for a server run without it.
34
+ */
35
+ export const MAX_BODY_BYTES = 1024 * 1024;
36
+ /**
37
+ * `initialize` calls one address may make in a minute. Wide, because every
38
+ * Claude user arrives from a handful of Anthropic's addresses - it is there for
39
+ * the hundred thousand in seven seconds (sessions.ts), not for anybody using it.
40
+ */
41
+ export const INITIALIZE_PER_MINUTE = 300;
30
42
  /**
31
43
  * What this server tells the world it is - on `/healthz`, in the MCP
32
44
  * `initialize` handshake, and in the line it logs at boot.
@@ -37,7 +49,7 @@ export const PROTOCOL_VERSION = '2025-06-18';
37
49
  * number. Found by reading the boot banner of a container that had just been
38
50
  * deployed (2026-09-22): seventeen tools listed, and "0.7.0" above them.
39
51
  */
40
- export const VERSION = '0.26.1';
52
+ export const VERSION = '0.27.0';
41
53
  /**
42
54
  * The card's resource URI.
43
55
  *
@@ -46,7 +58,7 @@ export const VERSION = '0.26.1';
46
58
  * connector went storefront-v35 → v40 in a single day of UI work for exactly
47
59
  * this reason.
48
60
  */
49
- export const CARD_URI = 'ui://curless/hotel/booking-v44.html';
61
+ export const CARD_URI = 'ui://curless/hotel/booking-v46.html';
50
62
  /**
51
63
  * ⚠️ `text/html;profile=mcp-app`, not `text/html+skybridge`. The MIME is how a
52
64
  * host recognises this resource as a card at all; the plausible near-miss made
@@ -210,6 +222,12 @@ export const buildServer = (opts) => {
210
222
  const tripIds = new TripIds(now, state.file('trip-ids.json'));
211
223
  const sessions = new Sessions(now, state.file('sessions.json'));
212
224
  const misses = new Misses(now);
225
+ const initializes = new WindowCounter(60_000, now);
226
+ // ⚠️ MEASURED BEFORE IT IS REQUIRED (P0-2, 2026-10-05). Every call without a
227
+ // session is going to be refused, and it must not be a host's card that
228
+ // finds out first: what each kind of caller actually sends is counted here
229
+ // and logged, and the refusal ships once it is known.
230
+ const calls = { issued: 0, missing: 0, missingFromCard: 0 };
213
231
  // What has outlived its time goes off the disk too, even with nobody asking:
214
232
  // "forgotten two hours after" is a promise the privacy page makes.
215
233
  if (state.persisted) {
@@ -294,14 +312,29 @@ export const buildServer = (opts) => {
294
312
  demo: brand.vocab.demo,
295
313
  });
296
314
  app.get('/healthz', (c) => c.json(health()));
297
- app.get('/healthz/detail', (c) => c.json({ ...health(), trips: trips.size, signedIn: members.size, ...made.health() }));
315
+ app.get('/healthz/detail', (c) => {
316
+ const stateTrouble = state.troubles();
317
+ return c.json({
318
+ ...health(),
319
+ trips: trips.size,
320
+ signedIn: members.size,
321
+ sessions: sessions.size,
322
+ calls: { ...calls },
323
+ ...made.health(),
324
+ // ⚠️ A store that cannot write is a person's job - see state.ts.
325
+ ...(Object.keys(stateTrouble).length ? { stateTrouble } : {}),
326
+ });
327
+ });
298
328
  app.get('/', (c) => c.redirect('./docs', 302));
299
329
  app.get('/mcp', (c) => c.json({ name: config.server.name, transport: 'streamable-http', version: VERSION }));
300
330
  // JSON-RPC, both halves. `id ?? null` because a malformed request has no id
301
331
  // and the spec still wants the field present.
302
332
  const ok = (c, id, result) => c.json({ jsonrpc: '2.0', id: id ?? null, result });
303
333
  const fail = (c, id, code, message) => c.json({ jsonrpc: '2.0', id: id ?? null, error: { code, message } });
304
- app.post('/mcp', async (c) => {
334
+ app.post('/mcp', bodyLimit({
335
+ maxSize: MAX_BODY_BYTES,
336
+ onError: (c) => c.json({ jsonrpc: '2.0', id: null, error: { code: -32600, message: 'request too large' } }, 413),
337
+ }), async (c) => {
305
338
  let body;
306
339
  try {
307
340
  body = await c.req.json();
@@ -310,6 +343,7 @@ export const buildServer = (opts) => {
310
343
  return fail(c, null, -32700, 'parse error');
311
344
  }
312
345
  const { id, method, params } = body;
346
+ const ip = clientIp(c.req.header('x-forwarded-for'));
313
347
  if (method === 'initialize') {
314
348
  // ⚠️ WE ISSUE THE SESSION ID. A host that is sent none has none to send
315
349
  // back, and then every call is its own conversation - which, for a trip,
@@ -320,7 +354,22 @@ export const buildServer = (opts) => {
320
354
  // trip, the bookings and the sign-in are filed under, and the only thing
321
355
  // that makes it anybody's is that nobody else can know it. It is never
322
356
  // put in an answer either - see `StoredBooking` in demo-hotels.ts.
323
- const sessionId = sessions.issue();
357
+ const from = ip ?? 'unknown';
358
+ if (initializes.count(from) >= INITIALIZE_PER_MINUTE) {
359
+ console.error(`[mcp] initialize refused: ${INITIALIZE_PER_MINUTE} a minute from ${from}`);
360
+ return c.json({
361
+ jsonrpc: '2.0',
362
+ id: id ?? null,
363
+ error: { code: -32000, message: 'Too many new sessions - try again in a minute' },
364
+ }, 429);
365
+ }
366
+ initializes.add(from);
367
+ const client = params?.clientInfo
368
+ ?.name;
369
+ const sessionId = sessions.issue({
370
+ ...(ip ? { ip } : {}),
371
+ ...(typeof client === 'string' ? { client: client.slice(0, 80) } : {}),
372
+ });
324
373
  c.header('Mcp-Session-Id', sessionId);
325
374
  return ok(c, id, {
326
375
  protocolVersion: PROTOCOL_VERSION,
@@ -408,6 +457,16 @@ export const buildServer = (opts) => {
408
457
  // The card names its trip; the conversation is known by its session. See
409
458
  // trip-ids.ts for why both exist.
410
459
  const asked = typeof args.trip === 'string' && args.trip ? args.trip : undefined;
460
+ // P0-2's measurement - see `calls`. One line per call, so the logs say
461
+ // which host sent what; the session id itself is never logged.
462
+ if (presented)
463
+ calls.issued += 1;
464
+ else {
465
+ calls.missing += 1;
466
+ if (asked)
467
+ calls.missingFromCard += 1;
468
+ }
469
+ console.log(`[call] ${name} session=${presented ? 'issued' : 'MISSING'} client=${(presented && sessions.clientOf(presented)) || '-'} card=${asked ? 'yes' : 'no'} ua=${(c.req.header('user-agent') ?? '-').slice(0, 80)}`);
411
470
  const named = asked ? tripIds.keyFor(asked) : undefined;
412
471
  // ⚠️ A TRIP THE CARD NAMES AND WE DO NOT KNOW IS SAID SO - see `tripGone`.
413
472
  // Anything else it asked is still answered, but with no trip beside it:
@@ -424,7 +483,6 @@ export const buildServer = (opts) => {
424
483
  }
425
484
  const key = named ?? tripKey(session, config.brand);
426
485
  try {
427
- const ip = clientIp(c.req.header('x-forwarded-for'));
428
486
  const answer = await handleTool(deps, name, args, {
429
487
  session,
430
488
  tripKey: key,
@@ -470,7 +528,12 @@ export const buildServer = (opts) => {
470
528
  });
471
529
  }
472
530
  catch (err) {
473
- return fail(c, id, -32603, err.message);
531
+ // ⚠️ THE DETAIL GOES TO THE LOG, NOT TO THE MODEL. An exception's own
532
+ // words - "Cannot read properties of null" - were read back to a
533
+ // guest, and say more about the code than anybody outside should
534
+ // know (2026-10-05 audit).
535
+ console.error(`[mcp] ${name} failed:`, err);
536
+ return fail(c, id, -32603, 'The connector could not answer that. Try again in a moment.');
474
537
  }
475
538
  }
476
539
  return fail(c, id, -32601, `unknown method: ${method}`);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,46 @@
1
1
  import type { StateFile } from './state.js';
2
2
  /** An id unused this long is forgotten; a conversation picked up after that starts a new session. */
3
3
  export declare const SESSION_TTL_MS: number;
4
+ /**
5
+ * Ids one network address may hold at once. Past it, that address's own
6
+ * oldest goes - never somebody else's.
7
+ *
8
+ * ⚠️ `initialize` WAS AN UNLIMITED FREE ISSUER. A hundred thousand of them in
9
+ * seven seconds pushed every real conversation out of the table and the file
10
+ * to 5.5MB (2026-10-05 audit). The quota is wide because an address is not a
11
+ * person - every Claude user arrives from a handful of Anthropic's - but one
12
+ * address can no longer evict everyone else.
13
+ */
14
+ export declare const MAX_SESSIONS_PER_IP = 20000;
15
+ /** What is known of who asked for a session - in memory only, never on disk. */
16
+ type Origin = {
17
+ ip?: string;
18
+ client?: string;
19
+ };
4
20
  export declare class Sessions {
5
21
  private readonly now;
6
22
  private readonly file?;
23
+ private readonly limits;
7
24
  /** Id → last used. Insertion order is use order: a touch re-inserts. */
8
25
  private readonly seen;
26
+ private readonly origin;
27
+ /** Address → its ids, oldest issued first. */
28
+ private readonly byIp;
9
29
  private sweptAt;
10
- constructor(now?: () => number, file?: StateFile | undefined);
11
- /** A new id, ours. */
12
- issue(): string;
30
+ constructor(now?: () => number, file?: StateFile | undefined, limits?: {
31
+ total: number;
32
+ perIp: number;
33
+ });
34
+ /** A new id, ours. Who asked is remembered in memory, for the quota and the logs. */
35
+ issue(from?: Origin): string;
36
+ /** Which client asked for this session, if it said - for the logs. */
37
+ clientOf(id: string): string | undefined;
38
+ private drop;
13
39
  /** Whether this is an id we issued and still keep - and, if so, that it was just used. */
14
40
  known(id: string): boolean;
15
41
  get size(): number;
16
- /** At most once an hour: a walk over a hundred thousand ids is not free. */
42
+ /** At most once an hour unless the table is full: a walk over a hundred thousand ids is not free. */
17
43
  private sweep;
18
44
  }
45
+ export {};
19
46
  //# sourceMappingURL=sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoB5C,qGAAqG;AACrG,eAAO,MAAM,cAAc,QAAkB,CAAC;AAU9C,qBAAa,QAAQ;IAMjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IANxB,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,OAAO,CAAK;gBAGD,GAAG,GAAE,MAAM,MAAyB,EACpC,IAAI,CAAC,EAAE,SAAS,YAAA;IAUnC,sBAAsB;IACtB,KAAK,IAAI,MAAM;IAaf,0FAA0F;IAC1F,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAiB1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,4EAA4E;IAC5E,OAAO,CAAC,KAAK;CAUd"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoB5C,qGAAqG;AACrG,eAAO,MAAM,cAAc,QAAkB,CAAC;AAG9C;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAQ1C,gFAAgF;AAChF,KAAK,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,qBAAa,QAAQ;IASjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,OAAO,CAAK;gBAGD,GAAG,GAAE,MAAM,MAAyB,EACpC,IAAI,CAAC,EAAE,SAAS,YAAA,EAChB,MAAM;;;KAAsD;IAU/E,qFAAqF;IACrF,KAAK,CAAC,IAAI,GAAE,MAAW,GAAG,MAAM;IA2BhC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC,OAAO,CAAC,IAAI;IAYZ,0FAA0F;IAC1F,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAiB1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qGAAqG;IACrG,OAAO,CAAC,KAAK;CAad"}