tpmkms_4wp 8.0.0-beta.5 → 8.0.0-beta.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/common/animals.instance.json +2855 -1363
  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 +6978 -3493
  8. package/common/colors.js +4 -8
  9. package/common/colors.test.json +345 -780
  10. package/common/comparable.js +5 -22
  11. package/common/concept.js +120 -118
  12. package/common/countable.js +18 -12
  13. package/common/countable.test.json +1050 -0
  14. package/common/crew.instance.json +13032 -6570
  15. package/common/crew.js +36 -41
  16. package/common/crew.test.json +714 -452
  17. package/common/currency.js +27 -45
  18. package/common/dialogues.js +158 -282
  19. package/common/dimension.instance.json +273 -272
  20. package/common/dimension.js +16 -22
  21. package/common/dimension.test.json +446 -1640
  22. package/common/edible.instance.json +19911 -9877
  23. package/common/edible.js +3 -8
  24. package/common/emotions.instance.json +146 -128
  25. package/common/emotions.js +35 -38
  26. package/common/evaluate.instance.json +2 -0
  27. package/common/evaluate.js +49 -0
  28. package/common/evaluate.test.json +574 -0
  29. package/common/events.js +9 -13
  30. package/common/fastfood.instance.json +221141 -111240
  31. package/common/fastfood.js +70 -80
  32. package/common/formulas.instance.json +251 -265
  33. package/common/formulas.js +17 -24
  34. package/common/gdefaults.js +24 -26
  35. package/common/help.js +7 -12
  36. package/common/help.test.json +22 -22
  37. package/common/helpers/concept.js +9 -6
  38. package/common/helpers/dialogues.js +2 -3
  39. package/common/helpers/properties.js +52 -58
  40. package/common/helpers.js +1 -1
  41. package/common/hierarchy.js +16 -24
  42. package/common/javascript.js +11 -18
  43. package/common/kirk.instance.json +583 -289
  44. package/common/kirk.js +5 -8
  45. package/common/length.instance.json +5530 -4754
  46. package/common/length.js +4 -8
  47. package/common/listener.js +48 -0
  48. package/common/listener.test.json +104 -0
  49. package/common/math.instance.json +192 -1184
  50. package/common/math.js +15 -19
  51. package/common/meta.js +23 -47
  52. package/common/nameable.instance.json +2 -0
  53. package/common/nameable.js +135 -0
  54. package/common/nameable.test.json +2121 -0
  55. package/common/negation.instance.json +2 -0
  56. package/common/negation.js +38 -0
  57. package/common/negation.test.json +308 -0
  58. package/common/numbers.js +6 -10
  59. package/common/ordering.instance.json +340 -160
  60. package/common/ordering.js +80 -86
  61. package/common/people.instance.json +2066 -1014
  62. package/common/people.js +8 -13
  63. package/common/percentages.instance.json +2 -0
  64. package/common/percentages.js +53 -0
  65. package/common/percentages.test.json +751 -0
  66. package/common/pipboy.instance.json +7999 -6269
  67. package/common/pipboy.js +32 -43
  68. package/common/pokemon.instance.json +4207 -2069
  69. package/common/pokemon.js +7 -20
  70. package/common/pos.js +4 -5
  71. package/common/pressure.instance.json +1341 -1189
  72. package/common/pressure.js +4 -8
  73. package/common/properties.instance.json +130 -60
  74. package/common/properties.js +56 -133
  75. package/common/punctuation.js +6 -6
  76. package/common/reports.instance.json +595 -557
  77. package/common/reports.js +64 -89
  78. package/common/scorekeeper.js +18 -30
  79. package/common/sdefaults.js +16 -7
  80. package/common/sizeable.js +5 -9
  81. package/common/spock.instance.json +583 -289
  82. package/common/spock.js +5 -8
  83. package/common/stgame.js +19 -19
  84. package/common/stm.js +163 -26
  85. package/common/stm.test.json +1734 -1
  86. package/common/tell.js +14 -18
  87. package/common/temperature.instance.json +1461 -1293
  88. package/common/temperature.js +4 -8
  89. package/common/tester.js +3 -3
  90. package/common/testing.js +8 -12
  91. package/common/time.js +20 -25
  92. package/common/tokenize.js +4 -5
  93. package/common/ui.instance.json +257 -258
  94. package/common/ui.js +11 -17
  95. package/common/weight.instance.json +5212 -4233
  96. package/common/weight.js +4 -8
  97. package/common/yesno.js +5 -5
  98. package/main.js +59 -46
  99. package/package.json +27 -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: [
@@ -155,7 +155,7 @@ let configStruct = {
155
155
  isA: ['verby'],
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
  }
@@ -183,7 +183,7 @@ let configStruct = {
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
  }
@@ -194,7 +194,7 @@ let configStruct = {
194
194
  isA: ['verby'],
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
  }
@@ -205,7 +205,7 @@ let configStruct = {
205
205
  isA: ['verby'],
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
  }
@@ -216,7 +216,7 @@ let configStruct = {
216
216
  isA: ['verby'],
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
  }
@@ -227,7 +227,7 @@ let configStruct = {
227
227
  isA: ['verby'],
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' })
@@ -243,7 +243,7 @@ let configStruct = {
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' })
@@ -259,9 +259,8 @@ let configStruct = {
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 }
@@ -275,9 +274,9 @@ let configStruct = {
275
274
  isA: ['verby'],
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
  },
@@ -287,10 +286,8 @@ let configStruct = {
287
286
  isA: ['verby'],
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
  },
@@ -300,9 +297,9 @@ let configStruct = {
300
297
  isA: ['verby'],
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
  },
@@ -374,10 +371,10 @@ let configStruct = {
374
371
  isA: ['verby'],
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
  },
@@ -386,7 +383,7 @@ let configStruct = {
386
383
  isA: ['verby'],
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
400
  isA: ['verby'],
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')
@@ -417,7 +414,7 @@ let configStruct = {
417
414
  isA: ['verby'],
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',