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.
- package/common/animals.instance.json +3055 -1651
- 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 -30
- package/common/colors.instance.json +25666 -0
- package/common/colors.js +67 -0
- package/common/colors.test.json +4425 -0
- 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/concept.test.json +688 -0
- 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 +16432 -9850
- package/common/crew.js +39 -42
- package/common/crew.test.json +714 -452
- package/common/currency.js +28 -46
- package/common/dialogues.js +187 -429
- package/common/dialogues.test.json +684 -450
- package/common/dimension.instance.json +517 -289
- package/common/dimension.js +22 -24
- package/common/dimension.test.json +727 -1944
- package/common/edible.instance.json +20506 -10664
- package/common/edible.js +4 -9
- package/common/emotions.instance.json +195 -123
- 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 +223185 -113172
- package/common/fastfood.js +77 -87
- package/common/fastfood.test.json +8205 -3733
- package/common/formulas.instance.json +444 -244
- package/common/formulas.js +20 -27
- package/common/formulas.test.json +1027 -955
- package/common/gdefaults.js +45 -32
- package/common/help.js +9 -14
- package/common/help.test.json +71 -18
- package/common/helpers/concept.js +37 -10
- package/common/helpers/dialogues.js +22 -4
- package/common/helpers/formulas.js +0 -14
- package/common/helpers/meta.js +0 -1
- package/common/helpers/properties.js +92 -84
- package/common/helpers.js +35 -24
- package/common/hierarchy.js +18 -25
- package/common/javascript.js +12 -19
- package/common/kirk.instance.json +583 -300
- package/common/kirk.js +6 -9
- package/common/length.instance.json +8995 -4964
- package/common/length.js +5 -9
- package/common/listener.js +48 -0
- package/common/listener.test.json +104 -0
- package/common/math.instance.json +409 -1202
- package/common/math.js +17 -21
- package/common/meta.js +24 -50
- package/common/nameable.instance.json +2 -0
- package/common/nameable.js +144 -0
- package/common/nameable.test.json +3191 -0
- package/common/negation.instance.json +2 -0
- package/common/negation.js +38 -0
- package/common/negation.test.json +308 -0
- package/common/numbers.js +28 -32
- package/common/ordering.instance.json +459 -274
- package/common/ordering.js +81 -87
- package/common/ordinals.instance.json +2 -0
- package/common/ordinals.js +61 -0
- package/common/ordinals.test.json +412 -0
- package/common/people.instance.json +2138 -1321
- package/common/people.js +9 -14
- package/common/people.test.json +1815 -1073
- 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 +12261 -6898
- package/common/pipboy.js +53 -62
- package/common/pipboy.test.json +2835 -0
- package/common/pokemon.instance.json +4432 -2351
- package/common/pokemon.js +8 -21
- package/common/pos.js +16 -14
- package/common/pressure.instance.json +2311 -1303
- package/common/pressure.js +5 -9
- package/common/properties.instance.json +151 -87
- package/common/properties.js +164 -167
- package/common/properties.test.json +17605 -4030
- package/common/punctuation.js +24 -8
- package/common/punctuation.test.json +233 -5
- package/common/reports.instance.json +1037 -551
- package/common/reports.js +77 -103
- package/common/reports.test.json +15623 -10458
- package/common/scorekeeper.js +19 -31
- package/common/sdefaults.js +17 -8
- package/common/sizeable.js +13 -12
- package/common/spock.instance.json +582 -299
- package/common/spock.js +6 -9
- package/common/stgame.js +20 -20
- package/common/stm.js +182 -29
- package/common/stm.test.json +1734 -1
- package/common/tell.js +15 -19
- package/common/temperature.instance.json +2379 -1355
- package/common/temperature.js +5 -9
- package/common/tester.js +15 -4
- package/common/testing.js +8 -13
- package/common/time.js +21 -26
- package/common/tokenize.js +8 -8
- package/common/tokenize.test.json +86 -1
- package/common/ui.instance.json +151 -460
- package/common/ui.js +22 -34
- package/common/ui.test.json +641 -5357
- package/common/weight.instance.json +7957 -4350
- package/common/weight.js +5 -9
- package/common/weight.test.json +242 -238
- package/common/yesno.js +6 -6
- package/main.js +68 -45
- package/package.json +44 -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')
|
@@ -68,7 +68,6 @@ const template = {
|
|
68
68
|
"strawberry, guava, mango passion, wild berry, and strawberry banana are countable",
|
69
69
|
"smoothie modifies ingredients",
|
70
70
|
"strawberry, guava, mango passion, wild berry, and strawberry banana are smoothie ingredients",
|
71
|
-
// { stop: true },
|
72
71
|
"a smoothie is a drink",
|
73
72
|
"french fries and waffle fries are fries",
|
74
73
|
"single, double, triple, baconator, and bacon deluxe are hamburgers",
|
@@ -138,7 +137,7 @@ const template = {
|
|
138
137
|
"((meal/* && context.comboNumber == undefined) [comboMeal] (combo/*))",
|
139
138
|
"((combo/*) [comboNumber] (number/* || numberNumberCombo/*))",
|
140
139
|
"((numberNumberCombo/1) [numberNumberCombo_combo|] (combo/0))",
|
141
|
-
"((number/0,1 && context.instance ==
|
140
|
+
"((number/0,1 && context.instance == false) [numberNumberCombo] (number/0,1 && instance == true))",
|
142
141
|
"((combo/*) [([withModification|with] ([modification]))])",
|
143
142
|
],
|
144
143
|
floaters: ['instance'],
|
@@ -217,7 +216,7 @@ const template = {
|
|
217
216
|
{
|
218
217
|
where: where(),
|
219
218
|
match: ({context}) => false && context.marker == 'combo' && context.comboNumber,
|
220
|
-
apply: ({context, g}) => g(context.comboNumber),
|
219
|
+
apply: async ({context, g}) => await g(context.comboNumber),
|
221
220
|
}
|
222
221
|
],
|
223
222
|
bridges: [
|
@@ -226,7 +225,7 @@ const template = {
|
|
226
225
|
id: 'withModification',
|
227
226
|
level: 0,
|
228
227
|
before: ['preposition'],
|
229
|
-
generatorp: ({context, gp}) => `with ${gp(context.modifications)}`,
|
228
|
+
generatorp: async ({context, gp}) => `with ${await gp(context.modifications)}`,
|
230
229
|
bridge: "{ ...next(operator), modifications: after[0], flatten: false }",
|
231
230
|
},
|
232
231
|
{
|
@@ -279,6 +278,7 @@ const template = {
|
|
279
278
|
{ context: [['list', 0], ['articlePOS',0], ['smoothie_ingredient', 0], ['smoothie', 0]], ordered: true, choose: [1,2] },
|
280
279
|
]
|
281
280
|
},
|
281
|
+
// { stop: true },
|
282
282
|
"junior modifies crispy chicken club",
|
283
283
|
"nuggets, junior bacon cheeseburgers, chicken go wraps and junior crispy chicken clubs are value meals",
|
284
284
|
"combos, chili, fries and drinks are sizeable",
|
@@ -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
|
],
|