tpmkms_4wp 8.0.0-beta.7 → 8.0.0-beta.70

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 (103) hide show
  1. package/common/animals.instance.json +2871 -1379
  2. package/common/animals.js +17 -20
  3. package/common/articles.js +103 -0
  4. package/common/articles.test.json +310 -0
  5. package/common/avatar.js +5 -9
  6. package/common/characters.js +22 -28
  7. package/common/colors.instance.json +7170 -3657
  8. package/common/colors.js +4 -8
  9. package/common/colors.test.json +345 -780
  10. package/common/comparable.instance.json +1750 -0
  11. package/common/comparable.js +36 -28
  12. package/common/comparable.test.json +438 -2
  13. package/common/concept.js +120 -118
  14. package/common/countable.js +19 -13
  15. package/common/countable.test.json +1050 -0
  16. package/common/crew.instance.json +13066 -6469
  17. package/common/crew.js +36 -41
  18. package/common/crew.test.json +714 -452
  19. package/common/currency.js +27 -45
  20. package/common/dialogues.js +161 -285
  21. package/common/dimension.instance.json +474 -253
  22. package/common/dimension.js +16 -22
  23. package/common/dimension.test.json +446 -1640
  24. package/common/edible.instance.json +20053 -10093
  25. package/common/edible.js +3 -8
  26. package/common/emotions.instance.json +147 -69
  27. package/common/emotions.js +35 -38
  28. package/common/evaluate.instance.json +2 -0
  29. package/common/evaluate.js +49 -0
  30. package/common/evaluate.test.json +574 -0
  31. package/common/events.js +10 -14
  32. package/common/fastfood.instance.json +221166 -111223
  33. package/common/fastfood.js +75 -85
  34. package/common/fastfood.test.json +268 -90
  35. package/common/formulas.instance.json +455 -249
  36. package/common/formulas.js +19 -26
  37. package/common/gdefaults.js +24 -26
  38. package/common/help.js +7 -12
  39. package/common/help.test.json +63 -8
  40. package/common/helpers/concept.js +10 -7
  41. package/common/helpers/dialogues.js +2 -3
  42. package/common/helpers/properties.js +54 -62
  43. package/common/helpers.js +6 -5
  44. package/common/hierarchy.js +16 -24
  45. package/common/javascript.js +11 -18
  46. package/common/kirk.instance.json +584 -290
  47. package/common/kirk.js +5 -8
  48. package/common/length.instance.json +8834 -4757
  49. package/common/length.js +4 -8
  50. package/common/listener.js +48 -0
  51. package/common/listener.test.json +104 -0
  52. package/common/math.instance.json +425 -1187
  53. package/common/math.js +16 -20
  54. package/common/meta.js +23 -47
  55. package/common/nameable.instance.json +2 -0
  56. package/common/nameable.js +144 -0
  57. package/common/nameable.test.json +3191 -0
  58. package/common/negation.instance.json +2 -0
  59. package/common/negation.js +38 -0
  60. package/common/negation.test.json +308 -0
  61. package/common/numbers.js +27 -31
  62. package/common/ordering.instance.json +366 -246
  63. package/common/ordering.js +80 -86
  64. package/common/people.instance.json +2074 -1022
  65. package/common/people.js +8 -13
  66. package/common/percentages.instance.json +2 -0
  67. package/common/percentages.js +53 -0
  68. package/common/percentages.test.json +751 -0
  69. package/common/pipboy.instance.json +11745 -6329
  70. package/common/pipboy.js +48 -59
  71. package/common/pokemon.instance.json +4226 -2081
  72. package/common/pokemon.js +7 -20
  73. package/common/pos.js +15 -13
  74. package/common/pressure.instance.json +2208 -1175
  75. package/common/pressure.js +4 -8
  76. package/common/properties.instance.json +131 -61
  77. package/common/properties.js +57 -134
  78. package/common/punctuation.js +15 -7
  79. package/common/reports.instance.json +1018 -530
  80. package/common/reports.js +77 -100
  81. package/common/reports.test.json +15623 -10458
  82. package/common/scorekeeper.js +18 -30
  83. package/common/sdefaults.js +16 -7
  84. package/common/sizeable.js +6 -10
  85. package/common/spock.instance.json +584 -290
  86. package/common/spock.js +5 -8
  87. package/common/stgame.js +19 -19
  88. package/common/stm.js +164 -27
  89. package/common/stm.test.json +1734 -1
  90. package/common/tell.js +14 -18
  91. package/common/temperature.instance.json +2271 -1222
  92. package/common/temperature.js +4 -8
  93. package/common/tester.js +15 -4
  94. package/common/testing.js +8 -12
  95. package/common/time.js +20 -25
  96. package/common/tokenize.js +5 -6
  97. package/common/ui.instance.json +459 -240
  98. package/common/ui.js +16 -22
  99. package/common/weight.instance.json +7646 -4026
  100. package/common/weight.js +4 -8
  101. package/common/yesno.js +5 -5
  102. package/main.js +14 -2
  103. package/package.json +28 -5
package/common/pipboy.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const hierarchy = require('./hierarchy')
4
4
  const countable = require('./countable')
@@ -100,7 +100,7 @@ class API {
100
100
  }
101
101
  const api = new API()
102
102
 
103
- let configStruct = {
103
+ let config = {
104
104
  name: 'pipboy',
105
105
  // TODO mark default as local scope
106
106
  operators: [
@@ -117,7 +117,7 @@ let configStruct = {
117
117
  // "([weapon])",
118
118
  // "([44_pistol|])",
119
119
  "([apparel])",
120
- "((!articlePOS/0 && !verby/0) [outfit|outfit])",
120
+ "((!articlePOS/0 && !verb/0) [outfit|outfit])",
121
121
  // this doesnt work because the speech recognizer hears 'where'
122
122
  "([wear] ([wearable]))",
123
123
  "([strip])",
@@ -152,10 +152,10 @@ let configStruct = {
152
152
  {
153
153
  where: where(),
154
154
  id: "put",
155
- isA: ['verby'],
155
+ isA: ['verb'],
156
156
  level: 0,
157
157
  bridge: "{ ...next(operator) }",
158
- generatorp: ({context, g}) => `put on`,
158
+ generatorp: ({context}) => `put on`,
159
159
  },
160
160
  {
161
161
  where: where(),
@@ -171,7 +171,7 @@ let configStruct = {
171
171
  isA: ['preposition'],
172
172
  level: 0,
173
173
  bridge: "{ ...before, marker: operator('putOn', 0), dead: false }",
174
- generatorp: ({context, g}) => `put on ${g(context.item)}`,
174
+ generatorp: async ({context, g}) => `put on ${await g(context.item)}`,
175
175
  semantic: ({api, context}) => {
176
176
  api.change(context.item.marker)
177
177
  }
@@ -179,11 +179,11 @@ let configStruct = {
179
179
  {
180
180
  where: where(),
181
181
  id: "change",
182
- isA: ['verby'],
182
+ isA: ['verb'],
183
183
  level: 0,
184
184
  bridge: "{ ...next(operator), item: after[0] }",
185
185
  localHierarchy: [ ['weapon', 'changeable'] ],
186
- generatorp: ({context, g}) => `change ${g(context.item)}`,
186
+ generatorp: async ({context, g}) => `change ${await g(context.item)}`,
187
187
  semantic: ({api, context}) => {
188
188
  api.change(context.item.marker)
189
189
  }
@@ -191,10 +191,10 @@ let configStruct = {
191
191
  {
192
192
  where: where(),
193
193
  id: "disarm",
194
- isA: ['verby'],
194
+ isA: ['verb'],
195
195
  level: 0,
196
196
  bridge: "{ ...next(operator) }",
197
- generatorp: ({context, g}) => `disarm`,
197
+ generatorp: ({context}) => `disarm`,
198
198
  semantic: ({api, context}) => {
199
199
  api.disarm()
200
200
  }
@@ -202,10 +202,10 @@ let configStruct = {
202
202
  {
203
203
  where: where(),
204
204
  id: "strip",
205
- isA: ['verby'],
205
+ isA: ['verb'],
206
206
  level: 0,
207
207
  bridge: "{ ...next(operator) }",
208
- generatorp: ({context, g}) => `strip`,
208
+ generatorp: ({context}) => `strip`,
209
209
  semantic: ({api, context}) => {
210
210
  api.strip()
211
211
  }
@@ -213,10 +213,10 @@ let configStruct = {
213
213
  {
214
214
  where: where(),
215
215
  id: "call",
216
- isA: ['verby'],
216
+ isA: ['verb'],
217
217
  level: 0,
218
218
  bridge: "{ ...next(operator), item: after[0], name: after[1] }",
219
- generatorp: ({context, g}) => `call ${g(context.item)} ${g(context.name)}`,
219
+ generatorp: async ({context, g}) => `call ${await g(context.item)} ${await g(context.name)}`,
220
220
  semantic: ({api, context}) => {
221
221
  api.setName(context.item, context.name.name.value)
222
222
  }
@@ -224,10 +224,10 @@ let configStruct = {
224
224
  {
225
225
  where: where(),
226
226
  id: "putOn",
227
- isA: ['verby'],
227
+ isA: ['verb'],
228
228
  level: 0,
229
229
  bridge: "{ ...next(operator), item: after[0] }",
230
- generatorp: ({context, g}) => `put on ${g(context.item)}`,
230
+ generatorp: async ({context, g}) => `put on ${await g(context.item)}`,
231
231
  semantic: ({api, context}) => {
232
232
  if (context.item.name) {
233
233
  api.wear({ name: context.item.name.value, type: 'outfit' })
@@ -239,11 +239,11 @@ let configStruct = {
239
239
  {
240
240
  where: where(),
241
241
  id: "wear",
242
- isA: ['verby'],
242
+ isA: ['verb'],
243
243
  words: ['where'], // the speech recognizer hears 'where' not 'wear'
244
244
  level: 0,
245
245
  bridge: "{ ...next(operator), item: after[0] }",
246
- generatorp: ({context, g}) => `wear ${g(context.item)}`,
246
+ generatorp: async ({context, g}) => `wear ${await g(context.item)}`,
247
247
  semantic: ({api, context}) => {
248
248
  if (context.item.name) {
249
249
  api.wear({ name: context.item.name.value, type: 'outfit' })
@@ -255,13 +255,12 @@ let configStruct = {
255
255
  {
256
256
  where: where(),
257
257
  id: "equip",
258
- isA: ['verby'],
258
+ isA: ['verb'],
259
259
  level: 0,
260
260
  localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'] ],
261
261
  bridge: "{ ...next(operator), item: after[0] }",
262
- generatorp: ({context, g}) => `equip ${g(context.item)}`,
263
- semantic: ({api, context, e}) => {
264
- // const value = e(context.item)
262
+ generatorp: async ({context, g}) => `equip ${await g(context.item)}`,
263
+ semantic: async ({api, context}) => {
265
264
  let condition
266
265
  if (context.item.condition) {
267
266
  condition = { selector: context.item.condition.marker, property: context.item.condition.property[0].marker }
@@ -272,37 +271,35 @@ let configStruct = {
272
271
  {
273
272
  where: where(),
274
273
  id: "toDrink",
275
- isA: ['verby'],
274
+ isA: ['verb'],
276
275
  level: 0,
277
276
  bridge: "{ ...next(operator), item: after[0] }",
278
- generatorp: ({context, g}) => `drink ${g(context.item)}`,
279
- semantic: ({api, context, e}) => {
280
- const value = e(context.item)
277
+ generatorp: async ({context, g}) => `drink ${await g(context.item)}`,
278
+ semantic: async ({api, context, e}) => {
279
+ const value = await e(context.item)
281
280
  api.drink(value.value)
282
281
  }
283
282
  },
284
283
  {
285
284
  where: where(),
286
285
  id: "eat",
287
- isA: ['verby'],
286
+ isA: ['verb'],
288
287
  level: 0,
289
288
  bridge: "{ ...next(operator), item: after[0] }",
290
- generatorp: ({context, g}) => `eat ${g(context.item)}`,
291
- semantic: ({api, context, e}) => {
292
- // const value = e(context.item)
293
- // api.eat(value.value)
289
+ generatorp: async ({context, g}) => `eat ${await g(context.item)}`,
290
+ semantic: async ({api, context}) => {
294
291
  api.eat(context.item.value)
295
292
  }
296
293
  },
297
294
  {
298
295
  where: where(),
299
296
  id: "take",
300
- isA: ['verby'],
297
+ isA: ['verb'],
301
298
  level: 0,
302
299
  bridge: "{ ...next(operator), item: after[0] }",
303
- generatorp: ({context, g}) => `take ${g(context.item)}`,
304
- semantic: ({api, context, e}) => {
305
- const value = e(context.item)
300
+ generatorp: async ({context, g}) => `take ${await g(context.item)}`,
301
+ semantic: async ({api, context, e}) => {
302
+ const value = await e(context.item)
306
303
  api.take(value.value)
307
304
  }
308
305
  },
@@ -371,22 +368,22 @@ let configStruct = {
371
368
  */
372
369
  {
373
370
  id: "apply",
374
- isA: ['verby'],
371
+ isA: ['verb'],
375
372
  level: 0,
376
373
  bridge: "{ ...next(operator), item: after[0] }",
377
- generatorp: ({context, g}) => `apply ${g(context.item)}`,
378
- semantic: ({api, context, e}) => {
374
+ generatorp: async ({context, g}) => `apply ${await g(context.item)}`,
375
+ semantic: async ({api, context, e}) => {
379
376
  // { item: 'stimpak', quantity: <number>, to?: [ { part: ['arm', 'leg', 'torso', head'], side?: ['left', 'right'] } ] }
380
- const quantity = context.item.quantity ? e(context.item.quantity).value : 1
377
+ const quantity = context.item.quantity ? (await e(context.item.quantity)).value : 1
381
378
  api.apply({ item: 'stimpak', quantity })
382
379
  }
383
380
  },
384
381
  {
385
382
  id: "go",
386
- isA: ['verby'],
383
+ isA: ['verb'],
387
384
  level: 0,
388
385
  bridge: "{ ...next(operator), showable: after[0].showable }",
389
- generatorp: ({context, g}) => `go to ${g(context.showable)}`,
386
+ generatorp: async ({context, g}) => `go to ${await g(context.showable)}`,
390
387
  semantic: ({api, context}) => {
391
388
  api.setDisplay(context.showable.value)
392
389
  }
@@ -396,14 +393,14 @@ let configStruct = {
396
393
  isA: ['preposition'],
397
394
  level: 0,
398
395
  bridge: "{ ...next(operator), showable: after[0] }",
399
- generatorp: ({context, g}) => `to ${g(context.showable)}`,
396
+ generatorp: async ({context, g}) => `to ${await g(context.showable)}`,
400
397
  },
401
398
  {
402
399
  id: "showWeapons",
403
- isA: ['verby'],
400
+ isA: ['verb'],
404
401
  level: 0,
405
402
  bridge: "{ ...next(operator), showable: after[0] }",
406
- generatorp: ({context, g}) => `show ${g(context.showable)}`,
403
+ generatorp: async ({context, g}) => `show ${await g(context.showable)}`,
407
404
  semantic: ({api, context}) => {
408
405
  if (context.showable.quantity && context.showable.quantity.value == 'all') {
409
406
  api.showWeapons('all')
@@ -414,10 +411,10 @@ let configStruct = {
414
411
  },
415
412
  {
416
413
  id: "show",
417
- isA: ['verby'],
414
+ isA: ['verb'],
418
415
  level: 0,
419
416
  bridge: "{ ...next(operator), showable: after[0] }",
420
- generatorp: ({context, g}) => `show ${g(context.showable)}`,
417
+ generatorp: async ({context, g}) => `show ${await g(context.showable)}`,
421
418
  semantic: ({api, context}) => {
422
419
  api.setDisplay(context.showable.value)
423
420
  }
@@ -524,25 +521,17 @@ const template = {
524
521
  "medicine and stimpaks are takeable",
525
522
  "item modifies properties",
526
523
  "damage luck hp rads value ap charisma range and accuracy are item properties",
527
- configStruct,
524
+ config,
528
525
  ]
529
526
  }
530
527
 
531
- const createConfig = () => {
532
- const config = new Config({ name: 'pipboy' }, module)
533
- config.stop_auto_rebuild()
534
- config.add(hierarchy(), countable(), comparable(), help(), math())
535
- // console.log('config.config.hierarchy', JSON.stringify(config.config.hierarchy, null, 2))
536
- // console.log('config.hierarchy', config.hierarchy)
537
- config.api = api
538
- config.restart_auto_rebuild()
539
- return config
540
- }
541
-
542
528
  knowledgeModule({
529
+ config: { name: 'pipboy' },
530
+ includes: [hierarchy, countable, comparable, help, math],
531
+ api: () => new API(),
532
+
543
533
  module,
544
534
  description: 'Control a pipboy with speech',
545
- createConfig,
546
535
  template: { template, instance },
547
536
  test: {
548
537
  name: './pipboy.test.json',