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
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, ensureTestFile, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, ensureTestFile, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck, propertyToArray } = require('./helpers')
3
3
  const edible = require('./edible')
4
4
  const events = require('./events')
@@ -137,7 +137,7 @@ const template = {
137
137
  "((meal/* && context.comboNumber == undefined) [comboMeal] (combo/*))",
138
138
  "((combo/*) [comboNumber] (number/* || numberNumberCombo/*))",
139
139
  "((numberNumberCombo/1) [numberNumberCombo_combo|] (combo/0))",
140
- "((number/0,1 && context.instance == undefined) [numberNumberCombo] (number/0,1))",
140
+ "((number/0,1 && context.instance == false) [numberNumberCombo] (number/0,1 && instance == true))",
141
141
  "((combo/*) [([withModification|with] ([modification]))])",
142
142
  ],
143
143
  floaters: ['instance'],
@@ -216,7 +216,7 @@ const template = {
216
216
  {
217
217
  where: where(),
218
218
  match: ({context}) => false && context.marker == 'combo' && context.comboNumber,
219
- apply: ({context, g}) => g(context.comboNumber),
219
+ apply: async ({context, g}) => await g(context.comboNumber),
220
220
  }
221
221
  ],
222
222
  bridges: [
@@ -225,7 +225,7 @@ const template = {
225
225
  id: 'withModification',
226
226
  level: 0,
227
227
  before: ['preposition'],
228
- generatorp: ({context, gp}) => `with ${gp(context.modifications)}`,
228
+ generatorp: async ({context, gp}) => `with ${await gp(context.modifications)}`,
229
229
  bridge: "{ ...next(operator), modifications: after[0], flatten: false }",
230
230
  },
231
231
  {
@@ -287,18 +287,16 @@ const template = {
287
287
  {
288
288
  // split "sprite and fanta" into separate things so the ask will pick them up
289
289
  match: ({context}) => context.marker == 'list' && context.topLevel && !context.flatten,
290
- apply: ({context, s}) => {
291
- s({...context, flatten: true})
292
- }
290
+ apply: async ({context, s}) => await s({...context, flatten: true}),
293
291
  },
294
292
  {
295
293
  where: where(),
296
294
  match: ({context, api}) => context.marker == 'controlEnd' && api.hasAskedForButNotAvailable(),
297
- apply: ({context, api, gp, toContext, verbatim}) => {
295
+ apply: async ({context, api, gp, toContext, verbatim}) => {
298
296
  const naArray = api.getAskedForButNotAvailable()
299
297
  naArray.forEach((f) => f.paraphrase = true)
300
298
  const naContext = toContext(naArray)
301
- verbatim(`The following are not menu items: ${gp(naContext)}`)
299
+ verbatim(`The following are not menu items: ${await gp(naContext)}`)
302
300
  // allow other motivation to run
303
301
  context.cascade = true
304
302
  }
@@ -306,11 +304,13 @@ const template = {
306
304
  {
307
305
  where: where(),
308
306
  match: ({context, api}) => context.marker == 'controlEnd' && api.hasAskedForButNotAvailableModification(),
309
- apply: ({context, api, gp, toContext, verbatim}) => {
310
- const naArray = api.getAskedForButNotAvailableModification().map(({ item, modification }) => {
307
+ apply: async ({context, api, gp, toContext, verbatim}) => {
308
+ const naArray = []
309
+ for (const args of api.getAskedForButNotAvailableModification()) {
310
+ const args = { item, modification }
311
311
  // return `${gp(item)} can not be modified with ${gp(modification)}.`
312
- return `XXX can not be modified with ${gp(modification)}.`
313
- })
312
+ naArray.push(`XXX can not be modified with ${await gp(modification)}.`)
313
+ }
314
314
  verbatim(naArray.join(' '))
315
315
  // allow other motivation to run
316
316
  context.cascade = true
@@ -411,13 +411,13 @@ const template = {
411
411
  bridges: [
412
412
  {
413
413
  id: "change",
414
- isA: ['verby'],
415
- localHierarchy: [ ['thisitthat', 'meal'] ],
416
- generatorp: ({context, gp}) => `change ${gp(context.from)} to ${gp(context.to)}`,
414
+ isA: ['verb'],
415
+ localHierarchy: [ ['thisitthat', 'meal'], ['thisitthat', 'drink'] ],
416
+ generatorp: async ({context, gp}) => `change ${await gp(context.from)} to ${await gp(context.to)}`,
417
417
  bridge: "{ ...next(operator), from: after[0], to: after[1].toObject }",
418
- semantic: ({context, api, e}) => {
418
+ semantic: async ({context, api, e}) => {
419
419
  const state = api.state
420
- const eFrom = e(context.from).evalue
420
+ const eFrom = (await e(context.from)).evalue
421
421
  const from = state.getIdCombo(eFrom.fromSTM ? eFrom : context.from)
422
422
  const to = state.getIdCombo(context.to)
423
423
  for (const item of api.items()) {
@@ -451,7 +451,7 @@ const template = {
451
451
  bridges: [
452
452
  {
453
453
  id: 'remove',
454
- isA: ['verby'],
454
+ isA: ['verb'],
455
455
  bridge: "{ ...next(operator), remove: after[0], postModifiers: ['remove'] }",
456
456
  semantic: ({context, api}) => {
457
457
  const state = api.state
@@ -464,7 +464,7 @@ const template = {
464
464
  },
465
465
  {
466
466
  id: 'reset',
467
- isA: ['verby'],
467
+ isA: ['verb'],
468
468
  bridge: "{ ...next(operator) }",
469
469
  semantic: ({context, api}) => {
470
470
  api.reset()
@@ -887,8 +887,8 @@ class State {
887
887
  {
888
888
  where: where(),
889
889
  match: ({context, isA}) => isA(context.marker, 'number') && !context.evaluate,
890
- apply: ({context, e}) => {
891
- food.comboNumber = { value: e(context).value }
890
+ apply: async ({context, e}) => {
891
+ food.comboNumber = { value: (await e(context)).value }
892
892
  this.add(Object.assign(food, context))
893
893
  }
894
894
  },
@@ -917,7 +917,7 @@ class State {
917
917
  }
918
918
 
919
919
  this.api.add(item)
920
- this.api.args.mentioned(food)
920
+ this.api.args.mentioned({ context: food })
921
921
 
922
922
  for (const addIt of addsInsteadOfModifications) {
923
923
  this.add(addIt)
@@ -935,75 +935,65 @@ class State {
935
935
  }
936
936
  }
937
937
 
938
- const createConfig = (additionalConfig) => {
939
- const config = new Config({
940
- name: 'fastfood',
941
- operators: [
942
- "([orderNoun|order])",
943
- "([showOrder|show] ([orderNoun/1]))",
944
- ],
945
- // flatten: ['list'],
946
- // TODO use node naming not python
947
- semantics: [
948
- {
949
- where: where(),
950
- priority: -10,
951
- match: ({context}) => context.marker == 'compound_operator',
952
- apply: ({context, s}) => {
953
- context.marker = 'list'
954
- context.flatten = true
955
- s(context)
956
- }
957
- },
958
- {
959
- where: where(),
960
- match: ({context, isAListable}) => isAListable(context, 'edible') && context.marker !== 'edible' && !context.same && !context.isResponse && !context.evaluate,
961
- apply: ({context, km, api, instance}) => {
962
- for (const element of propertyToArray(context)) {
963
- km('fastfood').api.state.add(element)
964
- }
965
- }
966
- },
967
- ],
968
- floaters: ['quantity'],
969
- bridges: [
970
- {
971
- id: 'orderNoun',
972
- parents: ['noun', 'queryable'],
973
- evaluator: ({context, api}) => {
974
- context.evalue = { marker: 'list', value: api.objects.items }
975
- api.show()
938
+ const config = {
939
+ name: 'fastfood',
940
+ operators: [
941
+ "([orderNoun|order])",
942
+ "([showOrder|show] ([orderNoun/1]))",
943
+ ],
944
+ // flatten: ['list'],
945
+ // TODO use node naming not python
946
+ semantics: [
947
+ {
948
+ where: where(),
949
+ priority: -10,
950
+ match: ({context}) => context.marker == 'compound_operator',
951
+ apply: async ({context, s}) => {
952
+ context.marker = 'list'
953
+ context.flatten = true
954
+ await s(context)
955
+ }
956
+ },
957
+ {
958
+ where: where(),
959
+ match: ({context, isAListable}) => isAListable(context, 'edible') && context.marker !== 'edible' && !context.same && !context.isResponse && !context.evaluate,
960
+ apply: ({context, km, api, instance}) => {
961
+ for (const element of propertyToArray(context)) {
962
+ km('fastfood').api.state.add(element)
976
963
  }
964
+ }
965
+ },
966
+ ],
967
+ floaters: ['quantity'],
968
+ bridges: [
969
+ {
970
+ id: 'orderNoun',
971
+ parents: ['noun', 'queryable'],
972
+ evaluator: ({context, api}) => {
973
+ context.evalue = { marker: 'list', value: api.objects.items }
974
+ api.show()
975
+ }
976
+ },
977
+ {
978
+ id: 'showOrder',
979
+ parents: ['verb'],
980
+ bridge: "{ ...next(operator), order: after[0] }",
981
+ generatorp: async ({context, g}) => `show ${await g(context.order)}`,
982
+ semantic: ({api}) => {
983
+ api.state.show()
977
984
  },
978
- {
979
- id: 'showOrder',
980
- parents: ['verby'],
981
- bridge: "{ ...next(operator), order: after[0] }",
982
- generatorp: ({context, g}) => `show ${g(context.order)}`,
983
- semantic: ({api}) => {
984
- api.state.show()
985
- },
986
- },
987
- ],
988
- }, module)
989
- config.stop_auto_rebuild()
990
- config.add(edible(), countable(), events(), sizeable())
991
- config.api = api
992
- config.initializer( ({api}) => {
993
- api.state = new State(api)
994
- })
995
- if (additionalConfig) {
996
- additionalConfig(config)
997
- }
998
- config.restart_auto_rebuild()
999
- return config
985
+ },
986
+ ],
1000
987
  }
1001
988
 
1002
989
  knowledgeModule( {
990
+ config,
991
+ includes: [edible, countable, events, sizeable],
992
+ api: () => new API(),
993
+ initializer: ({api}) => { api.state = new State(api) },
994
+
1003
995
  module,
1004
996
  description: 'fastfood related concepts',
1005
- createConfig,
1006
- acceptsAdditionalConfig: true,
1007
997
  test: {
1008
998
  name: './fastfood.test.json',
1009
999
  contents: fastfood_tests,