ekms 8.0.0 → 8.1.0-beta.1

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 (124) hide show
  1. package/common/animals.instance.json +3055 -1651
  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/asking.instance.json +2 -0
  6. package/common/asking.js +253 -0
  7. package/common/asking.test.json +2290 -0
  8. package/common/avatar.js +6 -10
  9. package/common/characters.js +23 -30
  10. package/common/colors.instance.json +25666 -0
  11. package/common/colors.js +67 -0
  12. package/common/colors.test.json +4425 -0
  13. package/common/comparable.instance.json +1750 -0
  14. package/common/comparable.js +36 -28
  15. package/common/comparable.test.json +1196 -2
  16. package/common/concept.js +121 -119
  17. package/common/concept.test.json +688 -0
  18. package/common/conjunction.instance.json +2 -0
  19. package/common/conjunction.js +104 -0
  20. package/common/conjunction.test.json +322 -0
  21. package/common/countable.js +20 -14
  22. package/common/countable.test.json +1050 -0
  23. package/common/crew.instance.json +16432 -9850
  24. package/common/crew.js +39 -42
  25. package/common/crew.test.json +714 -452
  26. package/common/currency.js +28 -46
  27. package/common/dialogues.js +187 -429
  28. package/common/dialogues.test.json +684 -450
  29. package/common/dimension.instance.json +517 -289
  30. package/common/dimension.js +22 -24
  31. package/common/dimension.test.json +727 -1944
  32. package/common/edible.instance.json +20506 -10664
  33. package/common/edible.js +4 -9
  34. package/common/emotions.instance.json +195 -123
  35. package/common/emotions.js +36 -39
  36. package/common/evaluate.instance.json +2 -0
  37. package/common/evaluate.js +53 -0
  38. package/common/evaluate.test.json +574 -0
  39. package/common/events.js +11 -15
  40. package/common/fastfood.instance.json +223185 -113172
  41. package/common/fastfood.js +77 -87
  42. package/common/fastfood.test.json +8205 -3733
  43. package/common/formulas.instance.json +444 -244
  44. package/common/formulas.js +20 -27
  45. package/common/formulas.test.json +1027 -955
  46. package/common/gdefaults.js +45 -32
  47. package/common/help.js +9 -14
  48. package/common/help.test.json +71 -18
  49. package/common/helpers/concept.js +37 -10
  50. package/common/helpers/dialogues.js +22 -4
  51. package/common/helpers/formulas.js +0 -14
  52. package/common/helpers/meta.js +0 -1
  53. package/common/helpers/properties.js +92 -84
  54. package/common/helpers.js +35 -24
  55. package/common/hierarchy.js +18 -25
  56. package/common/javascript.js +12 -19
  57. package/common/kirk.instance.json +583 -300
  58. package/common/kirk.js +6 -9
  59. package/common/length.instance.json +8995 -4964
  60. package/common/length.js +5 -9
  61. package/common/listener.js +48 -0
  62. package/common/listener.test.json +104 -0
  63. package/common/math.instance.json +409 -1202
  64. package/common/math.js +17 -21
  65. package/common/meta.js +24 -50
  66. package/common/nameable.instance.json +2 -0
  67. package/common/nameable.js +144 -0
  68. package/common/nameable.test.json +3191 -0
  69. package/common/negation.instance.json +2 -0
  70. package/common/negation.js +38 -0
  71. package/common/negation.test.json +308 -0
  72. package/common/numbers.js +28 -32
  73. package/common/ordering.instance.json +459 -274
  74. package/common/ordering.js +81 -87
  75. package/common/ordinals.instance.json +2 -0
  76. package/common/ordinals.js +61 -0
  77. package/common/ordinals.test.json +412 -0
  78. package/common/people.instance.json +2138 -1321
  79. package/common/people.js +9 -14
  80. package/common/people.test.json +1815 -1073
  81. package/common/percentages.instance.json +2 -0
  82. package/common/percentages.js +53 -0
  83. package/common/percentages.test.json +751 -0
  84. package/common/pipboy.instance.json +12261 -6898
  85. package/common/pipboy.js +53 -62
  86. package/common/pipboy.test.json +2835 -0
  87. package/common/pokemon.instance.json +4432 -2351
  88. package/common/pokemon.js +8 -21
  89. package/common/pos.js +16 -14
  90. package/common/pressure.instance.json +2311 -1303
  91. package/common/pressure.js +5 -9
  92. package/common/properties.instance.json +151 -87
  93. package/common/properties.js +164 -167
  94. package/common/properties.test.json +17605 -4030
  95. package/common/punctuation.js +24 -8
  96. package/common/punctuation.test.json +233 -5
  97. package/common/reports.instance.json +1037 -551
  98. package/common/reports.js +77 -103
  99. package/common/reports.test.json +15623 -10458
  100. package/common/scorekeeper.js +19 -31
  101. package/common/sdefaults.js +17 -8
  102. package/common/sizeable.js +13 -12
  103. package/common/spock.instance.json +582 -299
  104. package/common/spock.js +6 -9
  105. package/common/stgame.js +20 -20
  106. package/common/stm.js +182 -29
  107. package/common/stm.test.json +1734 -1
  108. package/common/tell.js +15 -19
  109. package/common/temperature.instance.json +2379 -1355
  110. package/common/temperature.js +5 -9
  111. package/common/tester.js +15 -4
  112. package/common/testing.js +8 -13
  113. package/common/time.js +21 -26
  114. package/common/tokenize.js +8 -8
  115. package/common/tokenize.test.json +86 -1
  116. package/common/ui.instance.json +151 -460
  117. package/common/ui.js +22 -34
  118. package/common/ui.test.json +641 -5357
  119. package/common/weight.instance.json +7957 -4350
  120. package/common/weight.js +5 -9
  121. package/common/weight.test.json +242 -238
  122. package/common/yesno.js +6 -6
  123. package/main.js +68 -45
  124. package/package.json +44 -6
@@ -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.js')
4
4
  const formulas = require('./formulas.js')
@@ -36,7 +36,7 @@ class API {
36
36
  config.addBridge({
37
37
  id: dimension,
38
38
  isA: ['dimension'],
39
- generatorp: ({context, g}) => context.amount ? `${g(context.amount)} ${g(context.unit)}` : context.word,
39
+ generatorp: async ({context, g}) => context.amount ? `${await g(context.amount)} ${await g(context.unit)}` : context.word,
40
40
  })
41
41
 
42
42
  // for example, celcius and fahrenheit
@@ -52,7 +52,7 @@ class API {
52
52
 
53
53
  const api = new API()
54
54
 
55
- let configStruct = {
55
+ let config = {
56
56
  name: 'dimension',
57
57
  operators: [
58
58
  "([dimension])",
@@ -76,7 +76,7 @@ let configStruct = {
76
76
  {
77
77
  where: where(),
78
78
  match: ({context}) => context.marker == 'noconversion',
79
- apply: ({context, gp}) => `there is no conversion between ${gp(context.from)} and ${gp(context.to)}`,
79
+ apply: async ({context, gp}) => `there is no conversion between ${await gp(context.from)} and ${await gp(context.to)}`,
80
80
  },
81
81
  ],
82
82
  bridges: [
@@ -86,7 +86,7 @@ let configStruct = {
86
86
  isA: [],
87
87
  generatorpr: {
88
88
  match: ({context}) => context.amount,
89
- apply: ({context, g, gp, gr}) => `${gr(context.amount)} ${gp(context.unit)}`,
89
+ apply: async ({context, gp, gr}) => `${await gr(context.amount)} ${await gp(context.unit)}`,
90
90
  },
91
91
  },
92
92
  { id: "length", isA: ['dimension'], development: true },
@@ -105,7 +105,7 @@ let configStruct = {
105
105
  id: "degree",
106
106
  words: [{ word: 'degrees', number: 'many' }],
107
107
  isA: ['amount'],
108
- generatorp: ({context, g}) => (context.amount) ? `${g(context.amount)} ${context.word}` : context.word,
108
+ generatorp: async ({context, g}) => (context.amount) ? `${await g(context.amount)} ${context.word}` : context.word,
109
109
  bridge: "{ ...next(operator), value: before[0].value, amount: before[0] }",
110
110
  },
111
111
  {
@@ -118,10 +118,11 @@ let configStruct = {
118
118
  id: "convertToUnits",
119
119
  bridge: "{ ...next(operator), from: before[0], to: after[0] }",
120
120
  isA: ['expression', 'queryable'],
121
+ localHierarchy: [['unknown', 'dimension']],
121
122
  after: [['possession', 0], ['possession', 1]],
122
- generatorp: ({context, g}) => `${g(context.from)} ${context.word} ${g(context.to)}`,
123
+ generatorp: async ({context, g}) => `${await g(context.from)} ${context.word} ${await g(context.to)}`,
123
124
  // evaluator: ({context, kms, error}) => {
124
- evaluator: ({context, kms, e, error}) => {
125
+ evaluator: async ({context, kms, e, error}) => {
125
126
  /*
126
127
  error(({context, e}) => {
127
128
  context.evalue = 'dont know...'
@@ -132,7 +133,7 @@ let configStruct = {
132
133
  let evalue;
133
134
  let efrom = from
134
135
  if (!from.unit) {
135
- efrom = e(from).evalue
136
+ efrom = (await e(from)).evalue
136
137
  }
137
138
  if (to.value == efrom.unit.value) {
138
139
  evalue = efrom.amount
@@ -140,11 +141,11 @@ let configStruct = {
140
141
  const formula = kms.formulas.api.get(to, [efrom.unit])
141
142
  if (!formula) {
142
143
  const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }
143
- kms.stm.api.mentioned(reason)
144
+ kms.stm.api.mentioned({ context: reason })
144
145
  error(reason)
145
146
  }
146
147
  kms.stm.api.setVariable(efrom.unit.value, efrom.amount)
147
- evalue = e(formula)
148
+ evalue = await e(formula)
148
149
  }
149
150
  /*
150
151
  '{
@@ -163,30 +164,27 @@ let configStruct = {
163
164
  }
164
165
  },
165
166
  },
166
- { id: "unit", },
167
+ {
168
+ id: "unit",
169
+ isA: ['number'],
170
+ },
167
171
  ]
168
172
  };
169
173
 
170
174
  const template = {
171
175
  configs: [
172
176
  "dimension and unit are concepts",
173
- configStruct,
177
+ config,
174
178
  ],
175
179
  }
176
180
 
177
- const createConfig = () => {
178
- const config = new Config({ name: 'dimension' }, module)
179
- config.stop_auto_rebuild()
180
- config.add(hierarchy(), formulas(), testing())
181
- config.api = api
182
- config.restart_auto_rebuild()
183
- return config
184
- }
185
-
186
181
  knowledgeModule({
182
+ config: { name: 'dimension' },
183
+ includes: [hierarchy, formulas, testing],
184
+ api: () => new API(),
185
+
187
186
  module,
188
187
  description: 'Used to define numeric temperature such as currency, temperature or weight',
189
- createConfig,
190
188
  template: { template, instance },
191
189
  test: {
192
190
  name: './dimension.test.json',
@@ -194,7 +192,7 @@ knowledgeModule({
194
192
  checks: {
195
193
  objects: [{ km: 'properties' }],
196
194
  checks: {
197
- context: defaultContextCheck,
195
+ context: defaultContextCheck(),
198
196
  },
199
197
  },
200
198
  },