ekms 8.0.0-beta.5 → 8.0.0-beta.51

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 +54 -62
  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 +57 -134
  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
@@ -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 numbersKM = require('./numbers.js')
4
4
  const currency_tests = require('./currency.test.json')
@@ -40,7 +40,7 @@ class API {
40
40
 
41
41
  const api = new API()
42
42
 
43
- let configStruct = {
43
+ let config = {
44
44
  name: 'currency',
45
45
  operators: [
46
46
  "(([number]) [currency])",
@@ -60,14 +60,14 @@ let configStruct = {
60
60
  {
61
61
  where: where(),
62
62
  match: ({context}) => context.marker == 'currency' && !context.isAbstract,
63
- apply: ({context, g}) => {
63
+ apply: async ({context, g}) => {
64
64
  word = Object.assign({}, context.amount)
65
65
  word.isAbstract = true
66
66
  word.marker = 'currency'
67
67
  word.units = context.units
68
68
  word.value = context.amount.value
69
69
  // generator = [({context}) => context.marker == 'currency' && context.units == words.units && context.value > 1 && context.isAbstract, ({context, g}) => words.many ]
70
- return `${g(context.amount.value)} ${g(word)}`
70
+ return `${await g(context.amount.value)} ${await g(word)}`
71
71
  }
72
72
  },
73
73
  ],
@@ -90,52 +90,34 @@ let configStruct = {
90
90
  ],
91
91
  };
92
92
 
93
- const createConfig = () => {
94
- const config = new Config(configStruct, module)
95
- config.stop_auto_rebuild()
96
- config.add(numbersKM())
97
- config.api = api
98
- config.initializer( ({config, objects, apis, addWord, addGenerator, baseConfig, uuid}) => {
99
- // const api = config.km('currency').api
100
- // const api = kms.currency.api
101
- const api = apis('currency')
102
- units = api.getUnits()
103
- for (word in units) {
104
- def = {"id": "currency", "initial": { units: units[word] }, uuid}
105
- addWord(word, def)
106
- }
107
- /*
108
- for (word in units) {
109
- words = config.get('words')
110
- def = {"id": "currency", "initial": { units: units[word] }, uuid}
111
- if (words[word]) {
112
- words[word].push(def)
113
- } else {
114
- words[word] = [def]
115
- }
116
- }
117
- */
118
-
119
- unitWords = api.getUnitWords();
120
- for (let words of unitWords) {
121
- addGenerator({
122
- match: ({context}) => context.marker == 'currency' && context.units == words.units && context.value == 1 && context.isAbstract,
123
- apply: ({context, g}) => words.one, uuid
124
- });
125
- addGenerator({
126
- match: ({context}) => context.marker == 'currency' && context.units == words.units && !isNaN(context.value) && (context.value != 1) && context.isAbstract,
127
- apply: ({context, g}) => words.many, uuid
128
- })
129
- }
130
- })
131
- config.restart_auto_rebuild()
132
- return config
93
+ const initializer = ({config, objects, apis, addWord, addGenerator, baseConfig, uuid}) => {
94
+ const api = apis('currency')
95
+ units = api.getUnits()
96
+ for (word in units) {
97
+ def = {"id": "currency", "initial": { units: units[word] }, uuid}
98
+ addWord(word, def)
99
+ }
100
+ unitWords = api.getUnitWords();
101
+ for (let words of unitWords) {
102
+ addGenerator({
103
+ match: ({context}) => context.marker == 'currency' && context.units == words.units && context.value == 1 && context.isAbstract,
104
+ apply: ({context, g}) => words.one, uuid
105
+ });
106
+ addGenerator({
107
+ match: ({context}) => context.marker == 'currency' && context.units == words.units && !isNaN(context.value) && (context.value != 1) && context.isAbstract,
108
+ apply: ({context, g}) => words.many, uuid
109
+ })
110
+ }
133
111
  }
134
112
 
135
113
  knowledgeModule({
114
+ config,
115
+ includes: [numbersKM],
116
+ api: () => api,
117
+ initializer,
118
+
136
119
  module,
137
120
  description: 'Ways of specifying currency amount',
138
- createConfig,
139
121
  test: {
140
122
  name: './currency.test.json',
141
123
  contents: currency_tests,