ekms 8.0.0-beta.6 → 8.0.0-beta.60
Sign up to get free protection for your applications and to get access to all the features.
- package/common/animals.instance.json +2871 -1379
- package/common/animals.js +17 -20
- package/common/articles.js +103 -0
- package/common/articles.test.json +310 -0
- package/common/avatar.js +5 -9
- package/common/characters.js +22 -28
- package/common/colors.instance.json +7170 -3657
- package/common/colors.js +4 -8
- package/common/colors.test.json +345 -780
- package/common/comparable.instance.json +1738 -0
- package/common/comparable.js +46 -27
- package/common/comparable.test.json +438 -2
- package/common/concept.js +120 -118
- package/common/countable.js +19 -13
- package/common/countable.test.json +1050 -0
- package/common/crew.instance.json +13066 -6598
- package/common/crew.js +36 -41
- package/common/crew.test.json +714 -452
- package/common/currency.js +27 -45
- package/common/dialogues.js +161 -285
- package/common/dimension.instance.json +474 -253
- package/common/dimension.js +16 -22
- package/common/dimension.test.json +446 -1640
- package/common/edible.instance.json +20059 -10007
- package/common/edible.js +3 -8
- package/common/emotions.instance.json +147 -129
- package/common/emotions.js +35 -38
- package/common/evaluate.instance.json +2 -0
- package/common/evaluate.js +49 -0
- package/common/evaluate.test.json +574 -0
- package/common/events.js +10 -14
- package/common/fastfood.instance.json +221967 -111264
- package/common/fastfood.js +74 -84
- package/common/fastfood.test.json +268 -90
- package/common/formulas.instance.json +455 -249
- package/common/formulas.js +19 -26
- package/common/gdefaults.js +24 -26
- package/common/help.js +7 -12
- package/common/help.test.json +22 -22
- package/common/helpers/concept.js +10 -7
- package/common/helpers/dialogues.js +2 -3
- package/common/helpers/properties.js +54 -62
- package/common/helpers.js +6 -5
- package/common/hierarchy.js +16 -24
- package/common/javascript.js +11 -18
- package/common/kirk.instance.json +584 -290
- package/common/kirk.js +5 -8
- package/common/length.instance.json +8834 -4757
- package/common/length.js +4 -8
- package/common/listener.js +48 -0
- package/common/listener.test.json +104 -0
- package/common/math.instance.json +425 -1187
- package/common/math.js +16 -20
- package/common/meta.js +23 -47
- package/common/nameable.instance.json +2 -0
- package/common/nameable.js +135 -0
- package/common/nameable.test.json +2121 -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 +27 -31
- package/common/ordering.instance.json +366 -246
- package/common/ordering.js +80 -86
- package/common/people.instance.json +2134 -1022
- package/common/people.js +8 -13
- 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 +11777 -6289
- package/common/pipboy.js +48 -59
- package/common/pokemon.instance.json +4226 -2081
- package/common/pokemon.js +7 -20
- package/common/pos.js +12 -13
- package/common/pressure.instance.json +2208 -1175
- package/common/pressure.js +4 -8
- package/common/properties.instance.json +131 -61
- package/common/properties.js +57 -134
- package/common/punctuation.js +6 -6
- package/common/reports.instance.json +1018 -530
- package/common/reports.js +73 -97
- package/common/scorekeeper.js +18 -30
- package/common/sdefaults.js +16 -7
- package/common/sizeable.js +6 -10
- package/common/spock.instance.json +584 -290
- package/common/spock.js +5 -8
- package/common/stgame.js +19 -19
- package/common/stm.js +164 -27
- package/common/stm.test.json +1734 -1
- package/common/tell.js +14 -18
- package/common/temperature.instance.json +2271 -1222
- package/common/temperature.js +4 -8
- package/common/tester.js +3 -3
- package/common/testing.js +8 -12
- package/common/time.js +20 -25
- package/common/tokenize.js +4 -5
- package/common/ui.instance.json +459 -240
- package/common/ui.js +16 -22
- package/common/weight.instance.json +7646 -4026
- package/common/weight.js +4 -8
- package/common/yesno.js +5 -5
- package/main.js +59 -46
- package/package.json +28 -5
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: ['
|
414
|
+
isA: ['verb'],
|
415
415
|
localHierarchy: [ ['thisitthat', 'meal'] ],
|
416
|
-
generatorp: ({context, gp}) => `change ${gp(context.from)} to ${gp(context.to)}`,
|
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,
|