@curless/hotel-storefront 0.1.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 (98) hide show
  1. package/README.md +63 -0
  2. package/dist/__tests__/card-contract.test.d.ts +2 -0
  3. package/dist/__tests__/card-contract.test.d.ts.map +1 -0
  4. package/dist/__tests__/card-contract.test.js +64 -0
  5. package/dist/__tests__/card-contract.test.js.map +1 -0
  6. package/dist/__tests__/data.test.d.ts +2 -0
  7. package/dist/__tests__/data.test.d.ts.map +1 -0
  8. package/dist/__tests__/data.test.js +89 -0
  9. package/dist/__tests__/data.test.js.map +1 -0
  10. package/dist/__tests__/dates.test.d.ts +2 -0
  11. package/dist/__tests__/dates.test.d.ts.map +1 -0
  12. package/dist/__tests__/dates.test.js +71 -0
  13. package/dist/__tests__/dates.test.js.map +1 -0
  14. package/dist/__tests__/demo-hotels.test.d.ts +2 -0
  15. package/dist/__tests__/demo-hotels.test.d.ts.map +1 -0
  16. package/dist/__tests__/demo-hotels.test.js +240 -0
  17. package/dist/__tests__/demo-hotels.test.js.map +1 -0
  18. package/dist/__tests__/server.test.d.ts +2 -0
  19. package/dist/__tests__/server.test.d.ts.map +1 -0
  20. package/dist/__tests__/server.test.js +209 -0
  21. package/dist/__tests__/server.test.js.map +1 -0
  22. package/dist/__tests__/tool-descriptions.test.d.ts +2 -0
  23. package/dist/__tests__/tool-descriptions.test.d.ts.map +1 -0
  24. package/dist/__tests__/tool-descriptions.test.js +139 -0
  25. package/dist/__tests__/tool-descriptions.test.js.map +1 -0
  26. package/dist/__tests__/tools.test.d.ts +2 -0
  27. package/dist/__tests__/tools.test.d.ts.map +1 -0
  28. package/dist/__tests__/tools.test.js +226 -0
  29. package/dist/__tests__/tools.test.js.map +1 -0
  30. package/dist/backend.d.ts +43 -0
  31. package/dist/backend.d.ts.map +1 -0
  32. package/dist/backend.js +2 -0
  33. package/dist/backend.js.map +1 -0
  34. package/dist/card.generated.d.ts +4 -0
  35. package/dist/card.generated.d.ts.map +1 -0
  36. package/dist/card.generated.js +8 -0
  37. package/dist/card.generated.js.map +1 -0
  38. package/dist/config.d.ts +122 -0
  39. package/dist/config.d.ts.map +1 -0
  40. package/dist/config.js +42 -0
  41. package/dist/config.js.map +1 -0
  42. package/dist/data.d.ts +5 -0
  43. package/dist/data.d.ts.map +1 -0
  44. package/dist/data.js +183 -0
  45. package/dist/data.js.map +1 -0
  46. package/dist/dates.d.ts +32 -0
  47. package/dist/dates.d.ts.map +1 -0
  48. package/dist/dates.js +75 -0
  49. package/dist/dates.js.map +1 -0
  50. package/dist/demo-hotels.d.ts +96 -0
  51. package/dist/demo-hotels.d.ts.map +1 -0
  52. package/dist/demo-hotels.js +446 -0
  53. package/dist/demo-hotels.js.map +1 -0
  54. package/dist/fence.d.ts +24 -0
  55. package/dist/fence.d.ts.map +1 -0
  56. package/dist/fence.js +0 -0
  57. package/dist/fence.js.map +1 -0
  58. package/dist/index.d.ts +3 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +23 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/legal.d.ts +5 -0
  63. package/dist/legal.d.ts.map +1 -0
  64. package/dist/legal.js +111 -0
  65. package/dist/legal.js.map +1 -0
  66. package/dist/money.d.ts +13 -0
  67. package/dist/money.d.ts.map +1 -0
  68. package/dist/money.js +46 -0
  69. package/dist/money.js.map +1 -0
  70. package/dist/server.d.ts +85 -0
  71. package/dist/server.d.ts.map +1 -0
  72. package/dist/server.js +275 -0
  73. package/dist/server.js.map +1 -0
  74. package/dist/surface.d.ts +52 -0
  75. package/dist/surface.d.ts.map +1 -0
  76. package/dist/surface.js +99 -0
  77. package/dist/surface.js.map +1 -0
  78. package/dist/tools.d.ts +336 -0
  79. package/dist/tools.d.ts.map +1 -0
  80. package/dist/tools.js +862 -0
  81. package/dist/tools.js.map +1 -0
  82. package/dist/trip-ids.d.ts +16 -0
  83. package/dist/trip-ids.d.ts.map +1 -0
  84. package/dist/trip-ids.js +77 -0
  85. package/dist/trip-ids.js.map +1 -0
  86. package/dist/trip.d.ts +59 -0
  87. package/dist/trip.d.ts.map +1 -0
  88. package/dist/trip.js +149 -0
  89. package/dist/trip.js.map +1 -0
  90. package/dist/types.d.ts +193 -0
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +13 -0
  93. package/dist/types.js.map +1 -0
  94. package/dist/vocab.d.ts +33 -0
  95. package/dist/vocab.d.ts.map +1 -0
  96. package/dist/vocab.js +15 -0
  97. package/dist/vocab.js.map +1 -0
  98. package/package.json +44 -0
@@ -0,0 +1,33 @@
1
+ import { type HotelConfig, type ToolNames } from './config.js';
2
+ /**
3
+ * The words one deployment speaks in, resolved once.
4
+ *
5
+ * The shopping connector learned this the hard way: literals like 'Moody
6
+ * Lenses' and `list_moody_lenses` sprinkled through 2,443 lines meant a second
7
+ * merchant was a copy with 172 renames, and then every bug had to be fixed
8
+ * twice. Everything brand-shaped is resolved here and passed down.
9
+ */
10
+ export type Vocabulary = {
11
+ /** 'Shangri-La'. What a guest sees named on the card and in every sentence. */
12
+ brand: string;
13
+ /** 'hotel' / 'hotels'. A group that calls them resorts says so in its config. */
14
+ noun: string;
15
+ nounPlural: string;
16
+ hints: NonNullable<HotelConfig['hints']>;
17
+ /**
18
+ * True while the rooms come from a demonstration file rather than the
19
+ * group's own system. It is not a cosmetic flag: it decides whether the
20
+ * payloads carry `demo: true`, whether the card prints the demo strip, and
21
+ * what `openWorldHint` claims about these tools.
22
+ */
23
+ demo: boolean;
24
+ };
25
+ export type ResolvedBrand = {
26
+ config: HotelConfig;
27
+ tools: ToolNames;
28
+ vocab: Vocabulary;
29
+ };
30
+ export declare const resolveBrand: (config: HotelConfig) => ResolvedBrand;
31
+ /** What the card and the text say about demonstration data, in one place so they cannot disagree. */
32
+ export declare const DEMO_NOTE = "Demonstration data: these rates, room counts and fees were made up for this demo and are not rates anyone can book.";
33
+ //# sourceMappingURL=vocab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocab.d.ts","sourceRoot":"","sources":["../src/vocab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC;;;;;OAKG;IACH,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,KAAG,aAUjD,CAAC;AAEH,qGAAqG;AACrG,eAAO,MAAM,SAAS,wHACiG,CAAC"}
package/dist/vocab.js ADDED
@@ -0,0 +1,15 @@
1
+ import { toolNames } from './config.js';
2
+ export const resolveBrand = (config) => ({
3
+ config,
4
+ tools: toolNames(config),
5
+ vocab: {
6
+ brand: config.brand,
7
+ noun: config.naming?.noun ?? 'hotel',
8
+ nounPlural: config.naming?.nounPlural ?? `${config.naming?.noun ?? 'hotel'}s`,
9
+ hints: config.hints ?? {},
10
+ demo: config.data.source !== 'api',
11
+ },
12
+ });
13
+ /** What the card and the text say about demonstration data, in one place so they cannot disagree. */
14
+ export const DEMO_NOTE = 'Demonstration data: these rates, room counts and fees were made up for this demo and are not rates anyone can book.';
15
+ //# sourceMappingURL=vocab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocab.js","sourceRoot":"","sources":["../src/vocab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,SAAS,EAAE,MAAM,aAAa,CAAC;AAgC1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAiB,EAAE,CAAC,CAAC;IACnE,MAAM;IACN,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;IACxB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,OAAO;QACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,OAAO,GAAG;QAC7E,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK;KACnC;CACF,CAAC,CAAC;AAEH,qGAAqG;AACrG,MAAM,CAAC,MAAM,SAAS,GACpB,qHAAqH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@curless/hotel-storefront",
3
+ "version": "0.1.0",
4
+ "type": "module",
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
+ "keywords": [
7
+ "mcp",
8
+ "hotel",
9
+ "booking",
10
+ "travel",
11
+ "agent-commerce",
12
+ "model-context-protocol",
13
+ "curless"
14
+ ],
15
+ "license": "MIT",
16
+ "homepage": "https://mcp.curless.ai/doc/sdks/",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://gitlab.com/curless-group1/agentbank.git",
20
+ "directory": "packages/sdks/hotel-storefront"
21
+ },
22
+ "bin": {
23
+ "curless-hotel-storefront": "./dist/index.js"
24
+ },
25
+ "files": ["dist"],
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "scripts": {
30
+ "build": "tsc",
31
+ "typecheck": "tsc --noEmit",
32
+ "test": "vitest run --passWithNoTests",
33
+ "clean": "rm -rf dist"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "^22.10.1",
37
+ "typescript": "^5.6.3",
38
+ "vitest": "^3.2.6"
39
+ },
40
+ "dependencies": {
41
+ "@hono/node-server": ">=2.0.5 <3",
42
+ "hono": ">=4.12.27 <5"
43
+ }
44
+ }