tpmkms_4wp 9.4.5-beta.3 → 9.4.5-beta.5

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.
@@ -0,0 +1,358 @@
1
+ function wordPlusInflectedWord(choice) {
2
+ const inflected_word = choice.word
3
+ const word = inflected_word.normalize('NFKD').replace(/[^\x00-\x7F]/g, '');
4
+ choice.inflected_word = inflected_word
5
+ choice.word = word
6
+ return choice
7
+ }
8
+
9
+ function getDeclensions(nominative, genitive = null) {
10
+ // Normalize input
11
+ nominative = nominative.toLowerCase().trim();
12
+ genitive = genitive ? genitive.toLowerCase().trim() : null;
13
+
14
+ // Regular expressions for declension identification
15
+ const firstDeclension = /a$/;
16
+ const secondDeclensionUs = /us$/;
17
+ const secondDeclensionEr = /er$/;
18
+ const secondDeclensionUm = /um$/;
19
+ const fourthDeclensionUs = /us$/; // Needs context (genitive)
20
+ const fourthDeclensionU = /u$/;
21
+ const fifthDeclension = /es$/;
22
+
23
+ // Irregular nouns
24
+ const irregularNouns = {
25
+ vis: {
26
+ declension: "3rd-i",
27
+ forms: [
28
+ { declension: "nominative", number: "singular", ending: "vis", word: "vis" },
29
+ { declension: "genitive", number: "singular", ending: "vis", word: "vis" },
30
+ { declension: "dative", number: "singular", ending: "vi", word: "vi" },
31
+ { declension: "accusative", number: "singular", ending: "vim", word: "vim" },
32
+ { declension: "ablative", number: "singular", ending: "vi", word: "vi" },
33
+ { declension: "nominative", number: "plural", ending: "vires", word: "vires" },
34
+ { declension: "genitive", number: "plural", ending: "virium", word: "virium" },
35
+ { declension: "dative", number: "plural", ending: "viribus", word: "viribus" },
36
+ { declension: "accusative", number: "plural", ending: "vires", word: "vires" },
37
+ { declension: "ablative", number: "plural", ending: "viribus", word: "viribus" }
38
+ ].map( wordPlusInflectedWord )
39
+ },
40
+ domus: {
41
+ declension: "4th",
42
+ forms: [
43
+ { declension: "nominative", number: "singular", ending: "domus", word: "domus" },
44
+ { declension: "genitive", number: "singular", ending: "ūs", word: "domūs" },
45
+ { declension: "dative", number: "singular", ending: "uī", word: "domuī" },
46
+ { declension: "accusative", number: "singular", ending: "um", word: "domum" },
47
+ { declension: "ablative", number: "singular", ending: "ō", word: "domō" },
48
+ { declension: "nominative", number: "plural", ending: "ūs", word: "domūs" },
49
+ { declension: "genitive", number: "plural", ending: "uum", word: "domuum" },
50
+ { declension: "dative", number: "plural", ending: "ibus", word: "domibus" },
51
+ { declension: "accusative", number: "plural", ending: "ūs", word: "domūs" },
52
+ { declension: "ablative", number: "plural", ending: "ibus", word: "domibus" },
53
+ { declension: "vocative", number: "singular", ending: "domus", word: "domus" }
54
+ ].map( wordPlusInflectedWord )
55
+ }
56
+ };
57
+
58
+ // Helper to get stem
59
+ function getStem(noun, declension, gen) {
60
+ if (irregularNouns[noun]) return null; // Handled separately
61
+ if (declension === "1st") return noun.slice(0, -1); // Remove -a
62
+ if (declension === "2nd-us") return noun.slice(0, -2); // Remove -us
63
+ if (declension === "2nd-er") {
64
+ const knownErWithE = ["puer", "liber", "vir"];
65
+ return knownErWithE.includes(noun) ? noun : noun.slice(0, -2) + "r"; // Remove -er, add r for ager
66
+ }
67
+ if (declension === "2nd-um") return noun.slice(0, -2); // Remove -um
68
+ if (declension === "4th-us") return noun.slice(0, -2); // Remove -us
69
+ if (declension === "4th-u") return noun.slice(0, -1); // Remove -u only
70
+ if (declension === "5th") return noun.slice(0, -2); // Remove -es
71
+ if (declension === "3rd" || declension === "3rd-i") {
72
+ if (!gen) throw new Error("Genitive required for 3rd declension.");
73
+ return gen.slice(0, -2); // Remove -is from genitive
74
+ }
75
+ return null;
76
+ }
77
+
78
+ // Determine declension
79
+ let declension = null;
80
+ let isNeuter = false;
81
+ if (irregularNouns[nominative]) {
82
+ declension = irregularNouns[nominative].declension;
83
+ } else if (firstDeclension.test(nominative)) {
84
+ declension = "1st";
85
+ } else if (secondDeclensionUs.test(nominative)) {
86
+ // Differentiate 2nd vs 4th using genitive if provided
87
+ if (genitive && genitive.endsWith("ūs")) declension = "4th-us";
88
+ else declension = "2nd-us";
89
+ } else if (secondDeclensionEr.test(nominative)) {
90
+ declension = "2nd-er";
91
+ } else if (secondDeclensionUm.test(nominative)) {
92
+ declension = "2nd-um";
93
+ isNeuter = true;
94
+ } else if (fourthDeclensionU.test(nominative)) {
95
+ declension = "4th-u";
96
+ isNeuter = true;
97
+ } else if (fifthDeclension.test(nominative)) {
98
+ declension = "5th";
99
+ } else if (genitive) {
100
+ // Assume 3rd declension if genitive provided and no other match
101
+ const iStemNouns = ["navis", "mare", "animal"];
102
+ declension = iStemNouns.includes(nominative) ? "3rd-i" : "3rd";
103
+ if (nominative === "mare") isNeuter = true;
104
+ } else {
105
+ return [{ declension: "error", number: null, ending: null, word: "Invalid noun or missing genitive for 3rd declension." }];
106
+ }
107
+
108
+ // Handle irregular nouns
109
+ if (irregularNouns[nominative]) {
110
+ return irregularNouns[nominative].forms;
111
+ }
112
+
113
+ // Get stem
114
+ let stem;
115
+ try {
116
+ stem = getStem(nominative, declension, genitive);
117
+ } catch (e) {
118
+ return [{ declension: "error", number: null, ending: null, word: e.message }];
119
+ }
120
+ if (!stem) return [{ declension: "error", number: null, ending: null, word: "Unable to determine stem." }];
121
+
122
+ // Define endings for each declension
123
+ const endings = {
124
+ "1st": {
125
+ nominativeSingular: { ending: "a", number: "singular" },
126
+ genitiveSingular: { ending: "ae", number: "singular" },
127
+ dativeSingular: { ending: "ae", number: "singular" },
128
+ accusativeSingular: { ending: "am", number: "singular" },
129
+ ablativeSingular: { ending: "ā", number: "singular" },
130
+ nominativePlural: { ending: "ae", number: "plural" },
131
+ genitivePlural: { ending: "ārum", number: "plural" },
132
+ dativePlural: { ending: "īs", number: "plural" },
133
+ accusativePlural: { ending: "ās", number: "plural" },
134
+ ablativePlural: { ending: "īs", number: "plural" },
135
+ vocativeSingular: { ending: "a", number: "singular" }
136
+ },
137
+ "2nd-us": {
138
+ nominativeSingular: { ending: "us", number: "singular" },
139
+ genitiveSingular: { ending: "ī", number: "singular" },
140
+ dativeSingular: { ending: "ō", number: "singular" },
141
+ accusativeSingular: { ending: "um", number: "singular" },
142
+ ablativeSingular: { ending: "ō", number: "singular" },
143
+ nominativePlural: { ending: "ī", number: "plural" },
144
+ genitivePlural: { ending: "ōrum", number: "plural" },
145
+ dativePlural: { ending: "īs", number: "plural" },
146
+ accusativePlural: { ending: "ōs", number: "plural" },
147
+ ablativePlural: { ending: "īs", number: "plural" },
148
+ vocativeSingular: { ending: "e", number: "singular" }
149
+ },
150
+ "2nd-er": {
151
+ nominativeSingular: { ending: nominative, number: "singular" },
152
+ genitiveSingular: { ending: "ī", number: "singular" },
153
+ dativeSingular: { ending: "ō", number: "singular" },
154
+ accusativeSingular: { ending: nominative === "puer" || nominative === "liber" || nominative === "ager" ? "um" : "rum", number: "singular" },
155
+ ablativeSingular: { ending: "ō", number: "singular" },
156
+ nominativePlural: { ending: "ī", number: "plural" },
157
+ genitivePlural: { ending: "ōrum", number: "plural" },
158
+ dativePlural: { ending: "īs", number: "plural" },
159
+ accusativePlural: { ending: "ōs", number: "plural" },
160
+ ablativePlural: { ending: "īs", number: "plural" },
161
+ vocativeSingular: { ending: nominative, number: "singular" }
162
+ },
163
+ "2nd-um": {
164
+ nominativeSingular: { ending: "um", number: "singular" },
165
+ genitiveSingular: { ending: "ī", number: "singular" },
166
+ dativeSingular: { ending: "ō", number: "singular" },
167
+ accusativeSingular: { ending: "um", number: "singular" },
168
+ ablativeSingular: { ending: "ō", number: "singular" },
169
+ nominativePlural: { ending: "a", number: "plural" },
170
+ genitivePlural: { ending: "ōrum", number: "plural" },
171
+ dativePlural: { ending: "īs", number: "plural" },
172
+ accusativePlural: { ending: "a", number: "plural" },
173
+ ablativePlural: { ending: "īs", number: "plural" },
174
+ vocativeSingular: { ending: "um", number: "singular" }
175
+ },
176
+ "3rd": {
177
+ nominativeSingular: { ending: nominative, number: "singular" },
178
+ genitiveSingular: { ending: "is", number: "singular" },
179
+ dativeSingular: { ending: "ī", number: "singular" },
180
+ accusativeSingular: { ending: isNeuter ? nominative : "em", number: "singular" },
181
+ ablativeSingular: { ending: "e", number: "singular" },
182
+ nominativePlural: { ending: isNeuter ? "a" : "ēs", number: "plural" },
183
+ genitivePlural: { ending: "um", number: "plural" },
184
+ dativePlural: { ending: "ibus", number: "plural" },
185
+ accusativePlural: { ending: isNeuter ? "a" : "ēs", number: "plural" },
186
+ ablativePlural: { ending: "ibus", number: "plural" },
187
+ vocativeSingular: { ending: nominative, number: "singular" }
188
+ },
189
+ "3rd-i": {
190
+ nominativeSingular: { ending: nominative, number: "singular" },
191
+ genitiveSingular: { ending: "is", number: "singular" },
192
+ dativeSingular: { ending: "ī", number: "singular" },
193
+ accusativeSingular: { ending: isNeuter ? nominative : "em", number: "singular" },
194
+ ablativeSingular: { ending: isNeuter ? "ī" : "e", number: "singular" },
195
+ nominativePlural: { ending: isNeuter ? "ia" : "ēs", number: "plural" },
196
+ genitivePlural: { ending: "ium", number: "plural" },
197
+ dativePlural: { ending: "ibus", number: "plural" },
198
+ accusativePlural: { ending: isNeuter ? "ia" : "ēs", number: "plural" },
199
+ ablativePlural: { ending: "ibus", number: "plural" },
200
+ vocativeSingular: { ending: nominative, number: "singular" }
201
+ },
202
+ "4th-us": {
203
+ nominativeSingular: { ending: "us", number: "singular" },
204
+ genitiveSingular: { ending: "ūs", number: "singular" },
205
+ dativeSingular: { ending: "uī", number: "singular" },
206
+ accusativeSingular: { ending: "um", number: "singular" },
207
+ ablativeSingular: { ending: "ū", number: "singular" },
208
+ nominativePlural: { ending: "ūs", number: "plural" },
209
+ genitivePlural: { ending: "uum", number: "plural" },
210
+ dativePlural: { ending: "ibus", number: "plural" },
211
+ accusativePlural: { ending: "ūs", number: "plural" },
212
+ ablativePlural: { ending: "ibus", number: "plural" },
213
+ vocativeSingular: { ending: "us", number: "singular" }
214
+ },
215
+ "4th-u": {
216
+ nominativeSingular: { ending: "ū", number: "singular" },
217
+ genitiveSingular: { ending: "ūs", number: "singular" },
218
+ dativeSingular: { ending: "ū", number: "singular" },
219
+ accusativeSingular: { ending: "ū", number: "singular" },
220
+ ablativeSingular: { ending: "ū", number: "singular" },
221
+ nominativePlural: { ending: "ua", number: "plural" },
222
+ genitivePlural: { ending: "uum", number: "plural" },
223
+ dativePlural: { ending: "ibus", number: "plural" },
224
+ accusativePlural: { ending: "ua", number: "plural" },
225
+ ablativePlural: { ending: "ibus", number: "plural" },
226
+ vocativeSingular: { ending: "ū", number: "singular" }
227
+ },
228
+ "5th": {
229
+ nominativeSingular: { ending: "ēs", number: "singular" },
230
+ genitiveSingular: { ending: "eī", number: "singular" },
231
+ dativeSingular: { ending: "eī", number: "singular" },
232
+ accusativeSingular: { ending: "em", number: "singular" },
233
+ ablativeSingular: { ending: "ē", number: "singular" },
234
+ nominativePlural: { ending: "ēs", number: "plural" },
235
+ genitivePlural: { ending: "ērum", number: "plural" },
236
+ dativePlural: { ending: "ēbus", number: "plural" },
237
+ accusativePlural: { ending: "ēs", number: "plural" },
238
+ ablativePlural: { ending: "ēbus", number: "plural" },
239
+ vocativeSingular: { ending: "ēs", number: "singular" }
240
+ }
241
+ };
242
+
243
+ // Generate forms
244
+ const forms = [];
245
+ for (const caseName in endings[declension]) {
246
+ const [caseType, number] = caseName.match(/([a-zA-Z]+)(Singular|Plural)/).slice(1);
247
+ const ending = endings[declension][caseName].ending;
248
+ const word = ending === nominative ? nominative : stem + ending;
249
+ forms.push(wordPlusInflectedWord({
250
+ declension: caseType.toLowerCase(),
251
+ number: number.toLowerCase(),
252
+ ending,
253
+ word,
254
+ }));
255
+ }
256
+
257
+ return forms;
258
+ }
259
+
260
+ function getIsIOType(infinitive) {
261
+ const thirdIOVerbs = [
262
+ 'capere', // to take, seize
263
+ 'cupere', // to desire
264
+ 'facere', // to make, do
265
+ 'iacere', // to throw
266
+ 'quaerere', // to seek, ask
267
+ 'sapere', // to know, taste
268
+ 'sedēre' // to sit (semi-deponent)
269
+ ];
270
+
271
+ return thirdIOVerbs.includes(infinitive);
272
+ }
273
+
274
+ function conjugateVerb(infinitive) {
275
+ if (typeof infinitive !== 'string' || !infinitive.endsWith('re')) {
276
+ throw new Error('Input must be a Latin verb infinitive ending in -re');
277
+ }
278
+
279
+ let conjugation, stem, first_singular_stem, isIOType;
280
+ if (infinitive.endsWith('are')) {
281
+ conjugation = 1;
282
+ stem = infinitive.slice(0, -2); // Remove "-are" (e.g., "amare" → "ama")
283
+ first_singular_stem = infinitive.slice(0, -3); // Remove "-are" (e.g., "amare" → "ama")
284
+ } else if (infinitive.endsWith('ēre') && !['ducere', 'capere', 'facere'].includes(infinitive)) {
285
+ conjugation = 2;
286
+ stem = infinitive.slice(0, -3); // Remove "-ere" (e.g., "videre" → "vide")
287
+ first_singular_stem = stem
288
+ } else if (infinitive.endsWith('ire')) {
289
+ conjugation = 4;
290
+ stem = infinitive.slice(0, -2); // Remove "-ire" (e.g., "audire" → "audi")
291
+ first_singular_stem = stem
292
+ } else {
293
+ conjugation = 3; // Third and third -io (e.g., "ducere" → "duc")
294
+ stem = infinitive.slice(0, -3); // Remove "-ere"
295
+ first_singular_stem = stem
296
+ isIOType = getIsIOType(infinitive)
297
+ }
298
+
299
+ const endings = {
300
+ 1: [
301
+ { number: 'singular', person: 'first', ending: 'o' },
302
+ { number: 'singular', person: 'second', ending: 's' },
303
+ { number: 'singular', person: 'third', ending: 't' },
304
+ { number: 'plural', person: 'first', ending: 'mus' },
305
+ { number: 'plural', person: 'second', ending: 'tis' },
306
+ { number: 'plural', person: 'third', ending: 'nt' },
307
+ ],
308
+ 2: [
309
+ { number: 'singular', person: 'first', ending: 'eo' },
310
+ { number: 'singular', person: 'second', ending: 'es' },
311
+ { number: 'singular', person: 'third', ending: 'et' },
312
+ { number: 'plural', person: 'first', ending: 'emus' },
313
+ { number: 'plural', person: 'second', ending: 'etis' },
314
+ { number: 'plural', person: 'third', ending: 'ent' },
315
+ ],
316
+ 3: [
317
+ { number: 'singular', person: 'first', ending: 'o' },
318
+ { number: 'singular', person: 'second', ending: 'is' },
319
+ { number: 'singular', person: 'third', ending: 'it' },
320
+ { number: 'plural', person: 'first', ending: 'imus' },
321
+ { number: 'plural', person: 'second', ending: 'itis' },
322
+ { number: 'plural', person: 'third', ending: 'unt' },
323
+ ],
324
+ 4: [
325
+ { number: 'singular', person: 'first', ending: 'o' },
326
+ { number: 'singular', person: 'second', ending: 's' },
327
+ { number: 'singular', person: 'third', ending: 't' },
328
+ { number: 'plural', person: 'first', ending: 'mus' },
329
+ { number: 'plural', person: 'second', ending: 'tis' },
330
+ { number: 'plural', person: 'third', ending: 'unt' },
331
+ ],
332
+ };
333
+
334
+ // if (conjugation === 3 && ['capere', 'facere'].includes(infinitive)) {
335
+ if (conjugation === 3 && isIOType) {
336
+ endings[3][0].ending = 'io'; // Third -io first-person singular
337
+ endings[3][5].ending = 'iunt'; // Third -io third-person plural
338
+ }
339
+
340
+ const conjugationEndings = endings[conjugation];
341
+ const conjugations = conjugationEndings.map(({ number, person, ending }) => {
342
+ // Special handling for "dare" first-person singular
343
+ let word;
344
+ if (person === 'first' && number === 'singular') {
345
+ word = first_singular_stem + ending;
346
+ } else if (conjugation === 1 || conjugation === 4) {
347
+ // Preserve stem vowel for first and fourth conjugations
348
+ word = stem + ending;
349
+ } else {
350
+ word = stem + ending;
351
+ }
352
+ return { word, number, person };
353
+ });
354
+
355
+ return conjugations;
356
+ }
357
+
358
+ module.exports = { conjugateVerb, getDeclensions };
@@ -5522,6 +5522,36 @@
5522
5522
  0
5523
5523
  ]
5524
5524
  ],
5525
+ [
5526
+ [
5527
+ "isEd",
5528
+ 0
5529
+ ],
5530
+ [
5531
+ "means",
5532
+ 0
5533
+ ],
5534
+ [
5535
+ "owned",
5536
+ 0
5537
+ ],
5538
+ [
5539
+ "ownee",
5540
+ 0
5541
+ ],
5542
+ [
5543
+ "owner",
5544
+ 0
5545
+ ],
5546
+ [
5547
+ "owns",
5548
+ 0
5549
+ ],
5550
+ [
5551
+ "unknown",
5552
+ 0
5553
+ ]
5554
+ ],
5525
5555
  [
5526
5556
  [
5527
5557
  "means",
@@ -8430,24 +8460,6 @@
8430
8460
  0
8431
8461
  ]
8432
8462
  ],
8433
- [
8434
- [
8435
- "by",
8436
- 0
8437
- ],
8438
- [
8439
- "isEd",
8440
- 0
8441
- ],
8442
- [
8443
- "owned",
8444
- 0
8445
- ],
8446
- [
8447
- "unknown",
8448
- 0
8449
- ]
8450
- ],
8451
8463
  [
8452
8464
  [
8453
8465
  "isEd",
@@ -8848,19 +8860,19 @@
8848
8860
  ],
8849
8861
  [
8850
8862
  [
8851
- "by",
8863
+ "first",
8852
8864
  0
8853
8865
  ],
8854
8866
  [
8855
- "isEd",
8867
+ "given",
8856
8868
  0
8857
8869
  ],
8858
8870
  [
8859
- "owned",
8871
+ "means",
8860
8872
  0
8861
8873
  ],
8862
8874
  [
8863
- "unknown",
8875
+ "name",
8864
8876
  0
8865
8877
  ]
8866
8878
  ],
@@ -8869,10 +8881,6 @@
8869
8881
  "first",
8870
8882
  0
8871
8883
  ],
8872
- [
8873
- "given",
8874
- 0
8875
- ],
8876
8884
  [
8877
8885
  "means",
8878
8886
  0
@@ -8884,15 +8892,15 @@
8884
8892
  ],
8885
8893
  [
8886
8894
  [
8887
- "first",
8895
+ "is",
8888
8896
  0
8889
8897
  ],
8890
8898
  [
8891
- "means",
8899
+ "owned",
8892
8900
  0
8893
8901
  ],
8894
8902
  [
8895
- "name",
8903
+ "unknown",
8896
8904
  0
8897
8905
  ]
8898
8906
  ],
@@ -8902,7 +8910,7 @@
8902
8910
  0
8903
8911
  ],
8904
8912
  [
8905
- "owned",
8913
+ "ownee",
8906
8914
  0
8907
8915
  ],
8908
8916
  [
@@ -8912,13 +8920,29 @@
8912
8920
  ],
8913
8921
  [
8914
8922
  [
8915
- "is",
8923
+ "isEd",
8924
+ 0
8925
+ ],
8926
+ [
8927
+ "means",
8928
+ 0
8929
+ ],
8930
+ [
8931
+ "owned",
8916
8932
  0
8917
8933
  ],
8918
8934
  [
8919
8935
  "ownee",
8920
8936
  0
8921
8937
  ],
8938
+ [
8939
+ "owner",
8940
+ 0
8941
+ ],
8942
+ [
8943
+ "owns",
8944
+ 0
8945
+ ],
8922
8946
  [
8923
8947
  "unknown",
8924
8948
  0
@@ -218,6 +218,9 @@
218
218
  "isA": [
219
219
  "verb"
220
220
  ],
221
+ "words": [
222
+ "use"
223
+ ],
221
224
  "level": 0,
222
225
  "localHierarchy": [
223
226
  [
@@ -238,7 +241,7 @@
238
241
  "semantic": "async ({api, context}) => {\n let condition\n if (context.item.condition) {\n condition = { selector: context.item.condition.marker, property: context.item.condition.property[0].marker }\n }\n api.equip({ type: context.item.value, condition })\n }"
239
242
  },
240
243
  {
241
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:266",
244
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:267",
242
245
  "id": "toDrink",
243
246
  "isA": [
244
247
  "verb"
@@ -249,7 +252,7 @@
249
252
  "semantic": "async ({api, context, e}) => {\n const value = await e(context.item)\n api.drink(value.value)\n }"
250
253
  },
251
254
  {
252
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:278",
255
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:279",
253
256
  "id": "eat",
254
257
  "localHierarchy": [
255
258
  [
@@ -266,7 +269,7 @@
266
269
  "semantic": "async ({api, context}) => {\n api.eat(context.item.value)\n }"
267
270
  },
268
271
  {
269
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:290",
272
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:291",
270
273
  "id": "take",
271
274
  "isA": [
272
275
  "verb"
@@ -277,7 +280,7 @@
277
280
  "semantic": "async ({api, context, e}) => {\n const value = await e(context.item)\n api.take(value.value)\n }"
278
281
  },
279
282
  {
280
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:302",
283
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:303",
281
284
  "id": "nameable",
282
285
  "isA": [
283
286
  "theAble"
@@ -1713,20 +1716,6 @@
1713
1716
  0
1714
1717
  ]
1715
1718
  ],
1716
- [
1717
- [
1718
- "is",
1719
- 0
1720
- ],
1721
- [
1722
- "list",
1723
- 1
1724
- ],
1725
- [
1726
- "unknown",
1727
- 0
1728
- ]
1729
- ],
1730
1719
  [
1731
1720
  [
1732
1721
  "is",
@@ -10196,20 +10185,6 @@
10196
10185
  0
10197
10186
  ]
10198
10187
  ],
10199
- [
10200
- [
10201
- "is",
10202
- 0
10203
- ],
10204
- [
10205
- "list",
10206
- 1
10207
- ],
10208
- [
10209
- "unknown",
10210
- 0
10211
- ]
10212
- ],
10213
10188
  [
10214
10189
  [
10215
10190
  "is",
@@ -34899,6 +34874,9 @@
34899
34874
  "isA": [
34900
34875
  "verb"
34901
34876
  ],
34877
+ "words": [
34878
+ "use"
34879
+ ],
34902
34880
  "level": 0,
34903
34881
  "localHierarchy": [
34904
34882
  [
@@ -34917,7 +34895,7 @@
34917
34895
  "bridge": "{ ...next(operator), item: after[0] }"
34918
34896
  },
34919
34897
  {
34920
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:266",
34898
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:267",
34921
34899
  "id": "toDrink",
34922
34900
  "isA": [
34923
34901
  "verb"
@@ -34926,7 +34904,7 @@
34926
34904
  "bridge": "{ ...next(operator), item: after[0] }"
34927
34905
  },
34928
34906
  {
34929
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:278",
34907
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:279",
34930
34908
  "id": "eat",
34931
34909
  "localHierarchy": [
34932
34910
  [
@@ -34941,7 +34919,7 @@
34941
34919
  "bridge": "{ ...next(operator), item: after[0] }"
34942
34920
  },
34943
34921
  {
34944
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:290",
34922
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:291",
34945
34923
  "id": "take",
34946
34924
  "isA": [
34947
34925
  "verb"
@@ -34950,7 +34928,7 @@
34950
34928
  "bridge": "{ ...next(operator), item: after[0] }"
34951
34929
  },
34952
34930
  {
34953
- "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:302",
34931
+ "where": "/home/dev/code/theprogrammablemind/kms/common/pipboy.js:303",
34954
34932
  "id": "nameable",
34955
34933
  "isA": [
34956
34934
  "theAble"
@@ -35641,34 +35619,6 @@
35641
35619
  0
35642
35620
  ]
35643
35621
  ],
35644
- [
35645
- [
35646
- "is",
35647
- 0
35648
- ],
35649
- [
35650
- "list",
35651
- 1
35652
- ],
35653
- [
35654
- "unknown",
35655
- 0
35656
- ]
35657
- ],
35658
- [
35659
- [
35660
- "is",
35661
- 0
35662
- ],
35663
- [
35664
- "list",
35665
- 1
35666
- ],
35667
- [
35668
- "unknown",
35669
- 0
35670
- ]
35671
- ],
35672
35622
  [
35673
35623
  [
35674
35624
  "is",
package/common/pipboy.js CHANGED
@@ -250,6 +250,7 @@ const config = {
250
250
  where: where(),
251
251
  id: "equip",
252
252
  isA: ['verb'],
253
+ words: ['use'],
253
254
  level: 0,
254
255
  localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'], ['equipable', 'unknown'] ],
255
256
  bridge: "{ ...next(operator), item: after[0] }",