@thijshakkenberg/valkyrie-mom-mcp 2.3.3 → 2.4.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.
Files changed (70) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/agents/scenario-designer.md +1 -1
  3. package/dist/catalogs/catalog-store.d.ts +12 -1
  4. package/dist/catalogs/catalog-store.d.ts.map +1 -1
  5. package/dist/catalogs/catalog-store.js +63 -3
  6. package/dist/catalogs/catalog-store.js.map +1 -1
  7. package/dist/catalogs/data/feature-vocabulary.d.ts +266 -0
  8. package/dist/catalogs/data/feature-vocabulary.d.ts.map +1 -0
  9. package/dist/catalogs/data/feature-vocabulary.js +94 -0
  10. package/dist/catalogs/data/feature-vocabulary.js.map +1 -0
  11. package/dist/catalogs/data/tile-content.d.ts +3 -0
  12. package/dist/catalogs/data/tile-content.d.ts.map +1 -0
  13. package/dist/catalogs/data/tile-content.js +12714 -0
  14. package/dist/catalogs/data/tile-content.js.map +1 -0
  15. package/dist/catalogs/data/tile-geometry.d.ts +0 -1
  16. package/dist/catalogs/data/tile-geometry.d.ts.map +1 -1
  17. package/dist/catalogs/data/tile-geometry.js +174 -174
  18. package/dist/catalogs/data/tile-geometry.js.map +1 -1
  19. package/dist/catalogs/tile-content-types.d.ts +60 -0
  20. package/dist/catalogs/tile-content-types.d.ts.map +1 -0
  21. package/dist/catalogs/tile-content-types.js +2 -0
  22. package/dist/catalogs/tile-content-types.js.map +1 -0
  23. package/dist/catalogs/tile-content.d.ts +27 -0
  24. package/dist/catalogs/tile-content.d.ts.map +1 -0
  25. package/dist/catalogs/tile-content.js +176 -0
  26. package/dist/catalogs/tile-content.js.map +1 -0
  27. package/dist/map/layout.d.ts +11 -1
  28. package/dist/map/layout.d.ts.map +1 -1
  29. package/dist/map/layout.js +20 -4
  30. package/dist/map/layout.js.map +1 -1
  31. package/dist/map/render.d.ts +16 -0
  32. package/dist/map/render.d.ts.map +1 -1
  33. package/dist/map/render.js +35 -3
  34. package/dist/map/render.js.map +1 -1
  35. package/dist/map/tile-spots.d.ts +34 -0
  36. package/dist/map/tile-spots.d.ts.map +1 -0
  37. package/dist/map/tile-spots.js +89 -0
  38. package/dist/map/tile-spots.js.map +1 -0
  39. package/dist/server.d.ts.map +1 -1
  40. package/dist/server.js +13 -6
  41. package/dist/server.js.map +1 -1
  42. package/dist/tools/map.d.ts.map +1 -1
  43. package/dist/tools/map.js +20 -2
  44. package/dist/tools/map.js.map +1 -1
  45. package/dist/tools/reference.d.ts +5 -2
  46. package/dist/tools/reference.d.ts.map +1 -1
  47. package/dist/tools/reference.js +13 -3
  48. package/dist/tools/reference.js.map +1 -1
  49. package/dist/tools/upsert.d.ts.map +1 -1
  50. package/dist/tools/upsert.js +33 -1
  51. package/dist/tools/upsert.js.map +1 -1
  52. package/dist/validation/rules/tile-connectivity.d.ts.map +1 -1
  53. package/dist/validation/rules/tile-connectivity.js +16 -2
  54. package/dist/validation/rules/tile-connectivity.js.map +1 -1
  55. package/package.json +1 -1
  56. package/skills/tile-placement/SKILL.md +3 -0
  57. package/src/catalogs/catalog-store.ts +63 -3
  58. package/src/catalogs/data/feature-vocabulary.ts +102 -0
  59. package/src/catalogs/data/tile-content.ts +12719 -0
  60. package/src/catalogs/data/tile-geometry.ts +174 -175
  61. package/src/catalogs/tile-content-types.ts +72 -0
  62. package/src/catalogs/tile-content.ts +170 -0
  63. package/src/map/layout.ts +22 -4
  64. package/src/map/render.ts +38 -4
  65. package/src/map/tile-spots.ts +107 -0
  66. package/src/server.ts +15 -8
  67. package/src/tools/map.ts +20 -2
  68. package/src/tools/reference.ts +11 -3
  69. package/src/tools/upsert.ts +29 -1
  70. package/src/validation/rules/tile-connectivity.ts +17 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valkyrie-mom",
3
- "version": "2.3.3",
3
+ "version": "2.4.1",
4
4
  "description": "AI-assisted Mansions of Madness scenario editor for Valkyrie",
5
5
  "author": {
6
6
  "name": "Thijs Hakkenberg"
@@ -119,4 +119,4 @@ Use these skills for detailed pattern guidance:
119
119
 
120
120
  ## Available MCP Tools
121
121
 
122
- All tools from the `valkyrie-mom` MCP server are available. Place tiles with `place_tile_relative`, put tokens on the spots `get_map_ascii` lists, and check the board with `render_map` (tiles hang east and south from their position, so floors have negative y). Run `validate_scenario` after major changes. Use `search_game_content` to find valid catalog entries for tiles, monsters, and items.
122
+ All tools from the `valkyrie-mom` MCP server are available. Place tiles with `place_tile_relative`, put tokens on the spots `get_map_ascii` lists (or by name: `at: "TileStudy:desk"` / `"TileStudy:s2"`), and check the board with `render_map` (tiles hang east and south from their position, so floors have negative y). Run `validate_scenario` after major changes. Use `search_game_content` to find valid catalog entries for tiles, monsters, and items; for tiles it also matches drawn objects, and `has: ["fireplace"]` filters by them.
@@ -1,7 +1,6 @@
1
1
  import type { CatalogEntry, CatalogType } from './catalog-types.js';
2
2
  /** Maps lowercase catalog pack IDs to Valkyrie's case-sensitive pack IDs */
3
3
  export declare const PACK_ID_MAP: Record<string, string>;
4
- /** Convert a catalog pack ID (lowercase) to Valkyrie's case-sensitive pack ID */
5
4
  export declare function getValkyriePackId(catalogPack: string): string;
6
5
  export declare class CatalogStore {
7
6
  private entries;
@@ -13,6 +12,18 @@ export declare class CatalogStore {
13
12
  * Optionally filter by CatalogType.
14
13
  */
15
14
  search(query: string, type?: CatalogType): CatalogEntry[];
15
+ /**
16
+ * Objects on a tile that a term refers to: features of a kind the term names (or a synonym of),
17
+ * or whose label contains it. Returns descriptions like "bookcase (tall bookshelf) in s1 study".
18
+ */
19
+ tileObjectMatches(tileId: string, term: string): string[];
20
+ /**
21
+ * Tiles showing every one of `terms` (object kinds, synonyms or label words). Tiles that are not
22
+ * annotated yet fall back to their description text. Each result lists the objects that matched.
23
+ */
24
+ tilesWith(terms: string[]): Array<CatalogEntry & {
25
+ matchedObjects: Record<string, string[]>;
26
+ }>;
16
27
  /** Get a catalog entry by exact ID. */
17
28
  getById(id: string): CatalogEntry | undefined;
18
29
  /** Get all entries of a given type. */
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-store.d.ts","sourceRoot":"","sources":["../../src/catalogs/catalog-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYpE,4EAA4E;AAC5E,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAe9C,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAmC;;IAoCjD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAazD,uCAAuC;IACvC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI7C,uCAAuC;IACvC,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE;IAI5C,+DAA+D;IAC/D,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;IAK1C,yDAAyD;IACzD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAItC,uEAAuE;IACvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMtD,mEAAmE;IACnE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMlD,qEAAqE;IACrE,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAKzD;AAKD,wBAAgB,gBAAgB,IAAI,YAAY,CAK/C"}
1
+ {"version":3,"file":"catalog-store.d.ts","sourceRoot":"","sources":["../../src/catalogs/catalog-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkBpE,4EAA4E;AAC5E,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAe9C,CAAC;AASF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAmC;;IA6CjD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAiBzD;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAUzD;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,GAAG;QAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;IAiB9F,uCAAuC;IACvC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI7C,uCAAuC;IACvC,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE;IAI5C,+DAA+D;IAC/D,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;IAK1C,yDAAyD;IACzD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAItC,uEAAuE;IACvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMtD,mEAAmE;IACnE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMlD,qEAAqE;IACrE,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAKzD;AAKD,wBAAgB,gBAAgB,IAAI,YAAY,CAK/C"}
@@ -1,5 +1,9 @@
1
1
  import { MONSTERS, TILES, AUDIO, ITEMS, INVESTIGATORS, PUZZLES, TOKENS, } from './data/all-catalogs.js';
2
2
  import { TILE_GEOMETRY } from './data/tile-geometry.js';
3
+ import { TILE_CONTENT } from './data/tile-content.js';
4
+ import { kindsForTerm } from './data/feature-vocabulary.js';
5
+ import { isAnnotated } from './tile-content.js';
6
+ const featureName = (f) => f.label ? `${f.kind.replace(/_/g, ' ')} (${f.label})` : f.kind.replace(/_/g, ' ');
3
7
  /** Maps lowercase catalog pack IDs to Valkyrie's case-sensitive pack IDs */
4
8
  export const PACK_ID_MAP = {
5
9
  base: 'MoMBase',
@@ -18,6 +22,11 @@ export const PACK_ID_MAP = {
18
22
  'fa-investigators': 'FAI',
19
23
  };
20
24
  /** Convert a catalog pack ID (lowercase) to Valkyrie's case-sensitive pack ID */
25
+ /** `text` contains `term` as whole words (a plural -s/-es counts too), ignoring case */
26
+ function hasWord(text, term) {
27
+ const escaped = term.trim().replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/\s+/g, '\\s+');
28
+ return new RegExp(`\\b${escaped}(?:s|es)?\\b`, 'i').test(text);
29
+ }
21
30
  export function getValkyriePackId(catalogPack) {
22
31
  return PACK_ID_MAP[catalogPack] ?? catalogPack;
23
32
  }
@@ -42,7 +51,16 @@ export class CatalogStore {
42
51
  if (geo) {
43
52
  entry.size = `${geo.width}x${geo.height} units`;
44
53
  entry.openings = geo.openings;
45
- entry.desc = geo.desc;
54
+ }
55
+ const content = TILE_CONTENT[entry.id];
56
+ if (content) {
57
+ entry.desc = content.desc;
58
+ if (isAnnotated(content)) {
59
+ entry.roomTypes = content.roomTypes;
60
+ entry.contentTags = content.tags;
61
+ entry.spaces = content.spaces.length;
62
+ entry.objects = [...new Set(content.features.map(featureName))];
63
+ }
46
64
  }
47
65
  }
48
66
  }
@@ -69,11 +87,53 @@ export class CatalogStore {
69
87
  return true;
70
88
  if (entry.traits.some(t => t.toLowerCase().includes(q)))
71
89
  return true;
72
- if (typeof entry.desc === 'string' && entry.desc.toLowerCase().includes(q))
90
+ if (entry.type !== 'tile')
91
+ return typeof entry.desc === 'string' && entry.desc.toLowerCase().includes(q);
92
+ // Tiles match on whole words, so "grave" doesn't find gravel and "table" doesn't find a timetable
93
+ if (typeof entry.desc === 'string' && hasWord(entry.desc, q))
94
+ return true;
95
+ if (this.tileObjectMatches(entry.id, query).length > 0)
73
96
  return true;
74
- return false;
97
+ const content = TILE_CONTENT[entry.id];
98
+ return !!content && [...content.roomTypes, ...content.tags].some(t => hasWord(t, q));
75
99
  });
76
100
  }
101
+ /**
102
+ * Objects on a tile that a term refers to: features of a kind the term names (or a synonym of),
103
+ * or whose label contains it. Returns descriptions like "bookcase (tall bookshelf) in s1 study".
104
+ */
105
+ tileObjectMatches(tileId, term) {
106
+ const content = TILE_CONTENT[tileId];
107
+ const q = term.trim().toLowerCase();
108
+ if (!isAnnotated(content) || !q)
109
+ return [];
110
+ const kinds = new Set(kindsForTerm(q));
111
+ return content.features
112
+ .filter(f => kinds.has(f.kind) || (!!f.label && hasWord(f.label, q)))
113
+ .map(f => `${featureName(f)} in ${f.space} ${content.spaces.find(s => s.id === f.space)?.label ?? ''}`.trim());
114
+ }
115
+ /**
116
+ * Tiles showing every one of `terms` (object kinds, synonyms or label words). Tiles that are not
117
+ * annotated yet fall back to their description text. Each result lists the objects that matched.
118
+ */
119
+ tilesWith(terms) {
120
+ const wanted = terms.map(t => t.trim().toLowerCase()).filter(Boolean);
121
+ const results = [];
122
+ for (const entry of this.byType.get('tile') ?? []) {
123
+ const matchedObjects = {};
124
+ const ok = wanted.every(term => {
125
+ const found = this.tileObjectMatches(entry.id, term);
126
+ if (found.length === 0 && !isAnnotated(TILE_CONTENT[entry.id]) && typeof entry.desc === 'string'
127
+ && hasWord(entry.desc, term))
128
+ found.push('(mentioned in the description; not annotated yet)');
129
+ matchedObjects[term] = found;
130
+ return found.length > 0;
131
+ });
132
+ if (ok)
133
+ results.push({ ...entry, matchedObjects });
134
+ }
135
+ return results;
136
+ }
77
137
  /** Get a catalog entry by exact ID. */
78
138
  getById(id) {
79
139
  return this.byId.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-store.js","sourceRoot":"","sources":["../../src/catalogs/catalog-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-store.js","sourceRoot":"","sources":["../../src/catalogs/catalog-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ export type FeatureCategory = 'furniture' | 'container' | 'fixture' | 'light' | 'exit' | 'terrain' | 'decor';
2
+ export declare const FEATURE_KINDS: {
3
+ readonly armchair: {
4
+ readonly category: "furniture";
5
+ readonly synonyms: ["easy chair", "wingback"];
6
+ };
7
+ readonly bed: {
8
+ readonly category: "furniture";
9
+ readonly synonyms: ["cot", "bunk"];
10
+ };
11
+ readonly bench: {
12
+ readonly category: "furniture";
13
+ };
14
+ readonly chair: {
15
+ readonly category: "furniture";
16
+ readonly synonyms: ["stool", "seat"];
17
+ };
18
+ readonly counter: {
19
+ readonly category: "furniture";
20
+ readonly synonyms: ["bar", "shop counter", "reception desk"];
21
+ };
22
+ readonly desk: {
23
+ readonly category: "furniture";
24
+ readonly synonyms: ["writing desk", "bureau", "secretary"];
25
+ };
26
+ readonly operating_table: {
27
+ readonly category: "furniture";
28
+ readonly synonyms: ["surgical table", "autopsy table", "slab"];
29
+ };
30
+ readonly pew: {
31
+ readonly category: "furniture";
32
+ readonly synonyms: ["church bench"];
33
+ };
34
+ readonly piano: {
35
+ readonly category: "furniture";
36
+ readonly synonyms: ["grand piano", "organ"];
37
+ };
38
+ readonly pulpit: {
39
+ readonly category: "furniture";
40
+ readonly synonyms: ["lectern", "podium"];
41
+ };
42
+ readonly sofa: {
43
+ readonly category: "furniture";
44
+ readonly synonyms: ["couch", "settee", "divan", "chaise"];
45
+ };
46
+ readonly table: {
47
+ readonly category: "furniture";
48
+ readonly synonyms: ["dining table", "side table", "end table", "nightstand"];
49
+ };
50
+ readonly workbench: {
51
+ readonly category: "furniture";
52
+ readonly synonyms: ["work table", "lab bench"];
53
+ };
54
+ readonly barrel: {
55
+ readonly category: "container";
56
+ readonly synonyms: ["cask", "keg"];
57
+ };
58
+ readonly bookcase: {
59
+ readonly category: "container";
60
+ readonly synonyms: ["bookshelf", "bookshelves", "books"];
61
+ };
62
+ readonly cabinet: {
63
+ readonly category: "container";
64
+ readonly synonyms: ["cupboard", "display case", "curio"];
65
+ };
66
+ readonly chest: {
67
+ readonly category: "container";
68
+ readonly synonyms: ["trunk", "footlocker"];
69
+ };
70
+ readonly coffin: {
71
+ readonly category: "container";
72
+ readonly synonyms: ["casket", "sarcophagus"];
73
+ };
74
+ readonly crate: {
75
+ readonly category: "container";
76
+ readonly synonyms: ["box", "boxes", "crates"];
77
+ };
78
+ readonly dresser: {
79
+ readonly category: "container";
80
+ readonly synonyms: ["wardrobe", "armoire", "chest of drawers", "vanity"];
81
+ };
82
+ readonly safe: {
83
+ readonly category: "container";
84
+ readonly synonyms: ["strongbox", "vault"];
85
+ };
86
+ readonly sack: {
87
+ readonly category: "container";
88
+ readonly synonyms: ["bag", "sacks"];
89
+ };
90
+ readonly shelf: {
91
+ readonly category: "container";
92
+ readonly synonyms: ["shelves", "rack", "pantry"];
93
+ };
94
+ readonly altar: {
95
+ readonly category: "fixture";
96
+ readonly synonyms: ["shrine"];
97
+ };
98
+ readonly bathtub: {
99
+ readonly category: "fixture";
100
+ readonly synonyms: ["bath", "tub"];
101
+ };
102
+ readonly cage: {
103
+ readonly category: "fixture";
104
+ readonly synonyms: ["cell", "bars", "kennel"];
105
+ };
106
+ readonly fireplace: {
107
+ readonly category: "fixture";
108
+ readonly synonyms: ["hearth", "mantel"];
109
+ };
110
+ readonly fountain: {
111
+ readonly category: "fixture";
112
+ };
113
+ readonly furnace: {
114
+ readonly category: "fixture";
115
+ readonly synonyms: ["boiler", "stove", "oven", "range"];
116
+ };
117
+ readonly lab_equipment: {
118
+ readonly category: "fixture";
119
+ readonly synonyms: ["beakers", "chemistry set", "specimen jars", "apparatus"];
120
+ };
121
+ readonly machinery: {
122
+ readonly category: "fixture";
123
+ readonly synonyms: ["machine", "generator", "engine", "pipes", "printing press"];
124
+ };
125
+ readonly sink: {
126
+ readonly category: "fixture";
127
+ readonly synonyms: ["basin", "washbasin"];
128
+ };
129
+ readonly statue: {
130
+ readonly category: "fixture";
131
+ readonly synonyms: ["sculpture", "idol", "bust"];
132
+ };
133
+ readonly toilet: {
134
+ readonly category: "fixture";
135
+ readonly synonyms: ["lavatory", "commode"];
136
+ };
137
+ readonly well: {
138
+ readonly category: "fixture";
139
+ readonly synonyms: ["cistern", "drain"];
140
+ };
141
+ readonly window: {
142
+ readonly category: "fixture";
143
+ readonly synonyms: ["skylight"];
144
+ };
145
+ readonly candles: {
146
+ readonly category: "light";
147
+ readonly synonyms: ["candelabra", "candle"];
148
+ };
149
+ readonly chandelier: {
150
+ readonly category: "light";
151
+ };
152
+ readonly lamp: {
153
+ readonly category: "light";
154
+ readonly synonyms: ["lantern", "oil lamp"];
155
+ };
156
+ readonly streetlamp: {
157
+ readonly category: "light";
158
+ readonly synonyms: ["lamppost", "gas lamp", "street light"];
159
+ };
160
+ readonly hole: {
161
+ readonly category: "exit";
162
+ readonly synonyms: ["pit", "shaft", "chasm"];
163
+ };
164
+ readonly ladder: {
165
+ readonly category: "exit";
166
+ };
167
+ readonly stairs_down: {
168
+ readonly category: "exit";
169
+ readonly synonyms: ["stairs", "staircase", "steps down"];
170
+ };
171
+ readonly stairs_up: {
172
+ readonly category: "exit";
173
+ readonly synonyms: ["stairs", "staircase", "steps up"];
174
+ };
175
+ readonly trapdoor: {
176
+ readonly category: "exit";
177
+ readonly synonyms: ["hatch", "manhole"];
178
+ };
179
+ readonly boat: {
180
+ readonly category: "terrain";
181
+ readonly synonyms: ["rowboat", "canoe"];
182
+ };
183
+ readonly bush: {
184
+ readonly category: "terrain";
185
+ readonly synonyms: ["hedge", "shrub", "shrubs"];
186
+ };
187
+ readonly dock: {
188
+ readonly category: "terrain";
189
+ readonly synonyms: ["pier", "jetty", "boardwalk"];
190
+ };
191
+ readonly fence: {
192
+ readonly category: "terrain";
193
+ readonly synonyms: ["railing", "gate"];
194
+ };
195
+ readonly gravestone: {
196
+ readonly category: "terrain";
197
+ readonly synonyms: ["tombstone", "headstone", "grave", "mausoleum"];
198
+ };
199
+ readonly rock: {
200
+ readonly category: "terrain";
201
+ readonly synonyms: ["boulder", "rocks", "stalagmite"];
202
+ };
203
+ readonly rubble: {
204
+ readonly category: "terrain";
205
+ readonly synonyms: ["debris", "wreckage", "collapsed"];
206
+ };
207
+ readonly tree: {
208
+ readonly category: "terrain";
209
+ readonly synonyms: ["trees", "stump"];
210
+ };
211
+ readonly vehicle: {
212
+ readonly category: "terrain";
213
+ readonly synonyms: ["car", "cart", "wagon", "carriage", "truck"];
214
+ };
215
+ readonly water: {
216
+ readonly category: "terrain";
217
+ readonly synonyms: ["pond", "pool", "river", "stream", "lake", "sea"];
218
+ };
219
+ readonly bones: {
220
+ readonly category: "decor";
221
+ readonly synonyms: ["skeleton", "skull", "remains"];
222
+ };
223
+ readonly body: {
224
+ readonly category: "decor";
225
+ readonly synonyms: ["corpse", "dead body"];
226
+ };
227
+ readonly clock: {
228
+ readonly category: "decor";
229
+ readonly synonyms: ["grandfather clock"];
230
+ };
231
+ readonly mirror: {
232
+ readonly category: "decor";
233
+ };
234
+ readonly painting: {
235
+ readonly category: "decor";
236
+ readonly synonyms: ["portrait", "picture", "art"];
237
+ };
238
+ readonly papers: {
239
+ readonly category: "decor";
240
+ readonly synonyms: ["documents", "letters", "notes", "scrolls", "map"];
241
+ };
242
+ readonly pillar: {
243
+ readonly category: "decor";
244
+ readonly synonyms: ["column", "post"];
245
+ };
246
+ readonly plant: {
247
+ readonly category: "decor";
248
+ readonly synonyms: ["potted plant", "flowers", "vase"];
249
+ };
250
+ readonly ritual_circle: {
251
+ readonly category: "decor";
252
+ readonly synonyms: ["summoning circle", "pentagram", "sigil", "runes"];
253
+ };
254
+ readonly rug: {
255
+ readonly category: "decor";
256
+ readonly synonyms: ["carpet", "mat"];
257
+ };
258
+ readonly other: {
259
+ readonly category: "decor";
260
+ };
261
+ };
262
+ export type FeatureKind = keyof typeof FEATURE_KINDS;
263
+ export declare const FEATURE_KIND_NAMES: FeatureKind[];
264
+ /** Kinds that a search term refers to: the kind itself, or kinds listing it as a synonym */
265
+ export declare function kindsForTerm(term: string): FeatureKind[];
266
+ //# sourceMappingURL=feature-vocabulary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-vocabulary.d.ts","sourceRoot":"","sources":["../../../src/catalogs/data/feature-vocabulary.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAO7G,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EmB,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAErD,eAAO,MAAM,kBAAkB,EAAiC,WAAW,EAAE,CAAC;AAE9E,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAUxD"}
@@ -0,0 +1,94 @@
1
+ // Controlled vocabulary for objects drawn on tiles. Every annotated feature uses one of these
2
+ // kinds, so searches like "bookshelf" or "stove" find the same objects as "bookcase" or "furnace".
3
+ export const FEATURE_KINDS = {
4
+ // furniture
5
+ armchair: { category: 'furniture', synonyms: ['easy chair', 'wingback'] },
6
+ bed: { category: 'furniture', synonyms: ['cot', 'bunk'] },
7
+ bench: { category: 'furniture' },
8
+ chair: { category: 'furniture', synonyms: ['stool', 'seat'] },
9
+ counter: { category: 'furniture', synonyms: ['bar', 'shop counter', 'reception desk'] },
10
+ desk: { category: 'furniture', synonyms: ['writing desk', 'bureau', 'secretary'] },
11
+ operating_table: { category: 'furniture', synonyms: ['surgical table', 'autopsy table', 'slab'] },
12
+ pew: { category: 'furniture', synonyms: ['church bench'] },
13
+ piano: { category: 'furniture', synonyms: ['grand piano', 'organ'] },
14
+ pulpit: { category: 'furniture', synonyms: ['lectern', 'podium'] },
15
+ sofa: { category: 'furniture', synonyms: ['couch', 'settee', 'divan', 'chaise'] },
16
+ table: { category: 'furniture', synonyms: ['dining table', 'side table', 'end table', 'nightstand'] },
17
+ workbench: { category: 'furniture', synonyms: ['work table', 'lab bench'] },
18
+ // containers
19
+ barrel: { category: 'container', synonyms: ['cask', 'keg'] },
20
+ bookcase: { category: 'container', synonyms: ['bookshelf', 'bookshelves', 'books'] },
21
+ cabinet: { category: 'container', synonyms: ['cupboard', 'display case', 'curio'] },
22
+ chest: { category: 'container', synonyms: ['trunk', 'footlocker'] },
23
+ coffin: { category: 'container', synonyms: ['casket', 'sarcophagus'] },
24
+ crate: { category: 'container', synonyms: ['box', 'boxes', 'crates'] },
25
+ dresser: { category: 'container', synonyms: ['wardrobe', 'armoire', 'chest of drawers', 'vanity'] },
26
+ safe: { category: 'container', synonyms: ['strongbox', 'vault'] },
27
+ sack: { category: 'container', synonyms: ['bag', 'sacks'] },
28
+ shelf: { category: 'container', synonyms: ['shelves', 'rack', 'pantry'] },
29
+ // fixtures
30
+ altar: { category: 'fixture', synonyms: ['shrine'] },
31
+ bathtub: { category: 'fixture', synonyms: ['bath', 'tub'] },
32
+ cage: { category: 'fixture', synonyms: ['cell', 'bars', 'kennel'] },
33
+ fireplace: { category: 'fixture', synonyms: ['hearth', 'mantel'] },
34
+ fountain: { category: 'fixture' },
35
+ furnace: { category: 'fixture', synonyms: ['boiler', 'stove', 'oven', 'range'] },
36
+ lab_equipment: { category: 'fixture', synonyms: ['beakers', 'chemistry set', 'specimen jars', 'apparatus'] },
37
+ machinery: { category: 'fixture', synonyms: ['machine', 'generator', 'engine', 'pipes', 'printing press'] },
38
+ sink: { category: 'fixture', synonyms: ['basin', 'washbasin'] },
39
+ statue: { category: 'fixture', synonyms: ['sculpture', 'idol', 'bust'] },
40
+ toilet: { category: 'fixture', synonyms: ['lavatory', 'commode'] },
41
+ well: { category: 'fixture', synonyms: ['cistern', 'drain'] },
42
+ window: { category: 'fixture', synonyms: ['skylight'] },
43
+ // lights
44
+ candles: { category: 'light', synonyms: ['candelabra', 'candle'] },
45
+ chandelier: { category: 'light' },
46
+ lamp: { category: 'light', synonyms: ['lantern', 'oil lamp'] },
47
+ streetlamp: { category: 'light', synonyms: ['lamppost', 'gas lamp', 'street light'] },
48
+ // exits (drawn on the tile, not frame openings)
49
+ hole: { category: 'exit', synonyms: ['pit', 'shaft', 'chasm'] },
50
+ ladder: { category: 'exit' },
51
+ stairs_down: { category: 'exit', synonyms: ['stairs', 'staircase', 'steps down'] },
52
+ stairs_up: { category: 'exit', synonyms: ['stairs', 'staircase', 'steps up'] },
53
+ trapdoor: { category: 'exit', synonyms: ['hatch', 'manhole'] },
54
+ // terrain
55
+ boat: { category: 'terrain', synonyms: ['rowboat', 'canoe'] },
56
+ bush: { category: 'terrain', synonyms: ['hedge', 'shrub', 'shrubs'] },
57
+ dock: { category: 'terrain', synonyms: ['pier', 'jetty', 'boardwalk'] },
58
+ fence: { category: 'terrain', synonyms: ['railing', 'gate'] },
59
+ gravestone: { category: 'terrain', synonyms: ['tombstone', 'headstone', 'grave', 'mausoleum'] },
60
+ rock: { category: 'terrain', synonyms: ['boulder', 'rocks', 'stalagmite'] },
61
+ rubble: { category: 'terrain', synonyms: ['debris', 'wreckage', 'collapsed'] },
62
+ tree: { category: 'terrain', synonyms: ['trees', 'stump'] },
63
+ vehicle: { category: 'terrain', synonyms: ['car', 'cart', 'wagon', 'carriage', 'truck'] },
64
+ water: { category: 'terrain', synonyms: ['pond', 'pool', 'river', 'stream', 'lake', 'sea'] },
65
+ // decor
66
+ bones: { category: 'decor', synonyms: ['skeleton', 'skull', 'remains'] },
67
+ body: { category: 'decor', synonyms: ['corpse', 'dead body'] },
68
+ clock: { category: 'decor', synonyms: ['grandfather clock'] },
69
+ mirror: { category: 'decor' },
70
+ painting: { category: 'decor', synonyms: ['portrait', 'picture', 'art'] },
71
+ papers: { category: 'decor', synonyms: ['documents', 'letters', 'notes', 'scrolls', 'map'] },
72
+ pillar: { category: 'decor', synonyms: ['column', 'post'] },
73
+ plant: { category: 'decor', synonyms: ['potted plant', 'flowers', 'vase'] },
74
+ ritual_circle: { category: 'decor', synonyms: ['summoning circle', 'pentagram', 'sigil', 'runes'] },
75
+ rug: { category: 'decor', synonyms: ['carpet', 'mat'] },
76
+ other: { category: 'decor' },
77
+ };
78
+ export const FEATURE_KIND_NAMES = Object.keys(FEATURE_KINDS);
79
+ /** Kinds that a search term refers to: the kind itself, or kinds listing it as a synonym */
80
+ export function kindsForTerm(term) {
81
+ const q = term.trim().toLowerCase().replace(/\s+/g, ' ');
82
+ if (!q)
83
+ return [];
84
+ const underscored = q.replace(/ /g, '_');
85
+ return FEATURE_KIND_NAMES.filter(kind => {
86
+ if (kind === 'other')
87
+ return false;
88
+ if (kind === underscored || kind.replace(/_/g, ' ') === q)
89
+ return true;
90
+ const info = FEATURE_KINDS[kind];
91
+ return info.synonyms?.includes(q) ?? false;
92
+ });
93
+ }
94
+ //# sourceMappingURL=feature-vocabulary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-vocabulary.js","sourceRoot":"","sources":["../../../src/catalogs/data/feature-vocabulary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TileContent } from '../tile-content-types.js';
2
+ export declare const TILE_CONTENT: Record<string, TileContent>;
3
+ //# sourceMappingURL=tile-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-content.d.ts","sourceRoot":"","sources":["../../../src/catalogs/data/tile-content.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAw6YpD,CAAC"}