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

Sign up to get free protection for your applications and to get access to all the features.
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',