ekms 8.0.0-beta.9 → 8.0.0-beta.91
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.
- package/common/animals.instance.json +2915 -1553
- package/common/animals.js +17 -20
- package/common/articles.js +103 -0
- package/common/articles.test.json +310 -0
- package/common/asking.instance.json +2 -0
- package/common/asking.js +253 -0
- package/common/asking.test.json +2290 -0
- package/common/avatar.js +6 -10
- package/common/characters.js +23 -29
- package/common/colors.instance.json +7487 -4114
- package/common/colors.js +5 -9
- package/common/colors.test.json +345 -780
- package/common/comparable.instance.json +1750 -0
- package/common/comparable.js +36 -28
- package/common/comparable.test.json +1196 -2
- package/common/concept.js +121 -119
- package/common/conjunction.instance.json +2 -0
- package/common/conjunction.js +104 -0
- package/common/conjunction.test.json +322 -0
- package/common/countable.js +20 -14
- package/common/countable.test.json +1050 -0
- package/common/crew.instance.json +13553 -7026
- package/common/crew.js +37 -42
- package/common/crew.test.json +714 -452
- package/common/currency.js +28 -46
- package/common/dialogues.js +150 -426
- package/common/dialogues.test.json +0 -786
- package/common/dimension.instance.json +491 -262
- package/common/dimension.js +22 -24
- package/common/dimension.test.json +508 -1702
- package/common/edible.instance.json +20446 -10806
- package/common/edible.js +4 -9
- package/common/emotions.instance.json +192 -124
- package/common/emotions.js +36 -39
- package/common/evaluate.instance.json +2 -0
- package/common/evaluate.js +53 -0
- package/common/evaluate.test.json +574 -0
- package/common/events.js +11 -15
- package/common/fastfood.instance.json +222642 -113618
- package/common/fastfood.js +76 -86
- package/common/fastfood.test.json +268 -90
- package/common/formulas.instance.json +443 -247
- package/common/formulas.js +20 -27
- package/common/gdefaults.js +40 -27
- package/common/help.js +9 -14
- package/common/help.test.json +65 -16
- package/common/helpers/concept.js +10 -7
- package/common/helpers/dialogues.js +5 -3
- package/common/helpers/properties.js +67 -64
- package/common/helpers.js +35 -24
- package/common/hierarchy.js +17 -25
- package/common/javascript.js +12 -19
- package/common/kirk.instance.json +583 -299
- package/common/kirk.js +6 -9
- package/common/length.instance.json +9005 -5001
- package/common/length.js +5 -9
- package/common/listener.js +48 -0
- package/common/listener.test.json +104 -0
- package/common/math.instance.json +406 -1178
- package/common/math.js +17 -21
- package/common/meta.js +24 -48
- package/common/nameable.instance.json +2 -0
- package/common/nameable.js +144 -0
- package/common/nameable.test.json +3191 -0
- package/common/negation.js +11 -7
- package/common/numbers.js +28 -32
- package/common/ordering.instance.json +443 -343
- package/common/ordering.js +81 -87
- package/common/ordinals.instance.json +2 -0
- package/common/ordinals.js +60 -0
- package/common/ordinals.test.json +306 -0
- package/common/people.instance.json +2210 -1150
- package/common/people.js +9 -14
- package/common/percentages.instance.json +2 -0
- package/common/percentages.js +53 -0
- package/common/percentages.test.json +751 -0
- package/common/pipboy.instance.json +11845 -6590
- package/common/pipboy.js +53 -62
- package/common/pipboy.test.json +2835 -0
- package/common/pokemon.instance.json +4300 -2285
- package/common/pokemon.js +8 -21
- package/common/pos.js +16 -14
- package/common/pressure.instance.json +2325 -1340
- package/common/pressure.js +5 -9
- package/common/properties.instance.json +148 -88
- package/common/properties.js +149 -160
- package/common/punctuation.js +16 -8
- package/common/reports.instance.json +1019 -551
- package/common/reports.js +77 -101
- package/common/reports.test.json +15623 -10458
- package/common/scorekeeper.js +19 -31
- package/common/sdefaults.js +17 -8
- package/common/sizeable.js +7 -11
- package/common/spock.instance.json +582 -298
- package/common/spock.js +6 -9
- package/common/stgame.js +20 -20
- package/common/stm.js +173 -31
- package/common/stm.test.json +1734 -1
- package/common/tell.js +15 -19
- package/common/temperature.instance.json +2430 -1429
- package/common/temperature.js +5 -9
- package/common/tester.js +15 -4
- package/common/testing.js +8 -12
- package/common/time.js +21 -26
- package/common/tokenize.js +6 -7
- package/common/ui.instance.json +150 -463
- package/common/ui.js +22 -33
- package/common/ui.test.json +641 -5357
- package/common/weight.instance.json +8034 -4503
- package/common/weight.js +5 -9
- package/common/yesno.js +6 -6
- package/main.js +20 -4
- package/package.json +37 -6
package/common/fastfood.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
const {
|
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 ==
|
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 =
|
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
|
-
|
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: ['
|
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: ['
|
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: ['
|
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
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
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
|
-
|
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,
|
@@ -1031,7 +1021,7 @@ knowledgeModule( {
|
|
1031
1021
|
{ property: 'pieces', filter: ['marker', 'value', 'text' ] },
|
1032
1022
|
],
|
1033
1023
|
context: [
|
1034
|
-
...defaultContextCheck,
|
1024
|
+
...defaultContextCheck(),
|
1035
1025
|
// TODO some kind of conditional selector { match: (value) => value.marker == 'count', filter: ['marker', 'value', 'text'] },
|
1036
1026
|
{ property: 'comboNumber', filter: ['marker', 'value', 'text' ] },
|
1037
1027
|
],
|