ekms 8.0.0-beta.7 → 8.0.0-beta.71
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 +1750 -0
- package/common/comparable.js +36 -28
- 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 -6469
- 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 +20053 -10093
- package/common/edible.js +3 -8
- package/common/emotions.instance.json +147 -69
- 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 +221166 -111223
- package/common/fastfood.js +75 -85
- 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 +63 -8
- 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 +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 +27 -31
- package/common/ordering.instance.json +366 -246
- package/common/ordering.js +80 -86
- package/common/people.instance.json +2074 -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 +11745 -6329
- package/common/pipboy.js +48 -59
- package/common/pokemon.instance.json +4226 -2081
- package/common/pokemon.js +7 -20
- package/common/pos.js +15 -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 +15 -7
- package/common/reports.instance.json +1018 -530
- package/common/reports.js +77 -100
- package/common/reports.test.json +15623 -10458
- 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 +15 -4
- package/common/testing.js +8 -12
- package/common/time.js +20 -25
- package/common/tokenize.js +5 -6
- 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 +14 -2
- package/package.json +28 -5
package/common/pipboy.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
const {
|
1
|
+
const { knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
|
2
2
|
const { defaultContextCheck } = require('./helpers')
|
3
3
|
const hierarchy = require('./hierarchy')
|
4
4
|
const countable = require('./countable')
|
@@ -100,7 +100,7 @@ class API {
|
|
100
100
|
}
|
101
101
|
const api = new API()
|
102
102
|
|
103
|
-
let
|
103
|
+
let config = {
|
104
104
|
name: 'pipboy',
|
105
105
|
// TODO mark default as local scope
|
106
106
|
operators: [
|
@@ -117,7 +117,7 @@ let configStruct = {
|
|
117
117
|
// "([weapon])",
|
118
118
|
// "([44_pistol|])",
|
119
119
|
"([apparel])",
|
120
|
-
"((!articlePOS/0 && !
|
120
|
+
"((!articlePOS/0 && !verb/0) [outfit|outfit])",
|
121
121
|
// this doesnt work because the speech recognizer hears 'where'
|
122
122
|
"([wear] ([wearable]))",
|
123
123
|
"([strip])",
|
@@ -152,10 +152,10 @@ let configStruct = {
|
|
152
152
|
{
|
153
153
|
where: where(),
|
154
154
|
id: "put",
|
155
|
-
isA: ['
|
155
|
+
isA: ['verb'],
|
156
156
|
level: 0,
|
157
157
|
bridge: "{ ...next(operator) }",
|
158
|
-
generatorp: ({context
|
158
|
+
generatorp: ({context}) => `put on`,
|
159
159
|
},
|
160
160
|
{
|
161
161
|
where: where(),
|
@@ -171,7 +171,7 @@ let configStruct = {
|
|
171
171
|
isA: ['preposition'],
|
172
172
|
level: 0,
|
173
173
|
bridge: "{ ...before, marker: operator('putOn', 0), dead: false }",
|
174
|
-
generatorp: ({context, g}) => `put on ${g(context.item)}`,
|
174
|
+
generatorp: async ({context, g}) => `put on ${await g(context.item)}`,
|
175
175
|
semantic: ({api, context}) => {
|
176
176
|
api.change(context.item.marker)
|
177
177
|
}
|
@@ -179,11 +179,11 @@ let configStruct = {
|
|
179
179
|
{
|
180
180
|
where: where(),
|
181
181
|
id: "change",
|
182
|
-
isA: ['
|
182
|
+
isA: ['verb'],
|
183
183
|
level: 0,
|
184
184
|
bridge: "{ ...next(operator), item: after[0] }",
|
185
185
|
localHierarchy: [ ['weapon', 'changeable'] ],
|
186
|
-
generatorp: ({context, g}) => `change ${g(context.item)}`,
|
186
|
+
generatorp: async ({context, g}) => `change ${await g(context.item)}`,
|
187
187
|
semantic: ({api, context}) => {
|
188
188
|
api.change(context.item.marker)
|
189
189
|
}
|
@@ -191,10 +191,10 @@ let configStruct = {
|
|
191
191
|
{
|
192
192
|
where: where(),
|
193
193
|
id: "disarm",
|
194
|
-
isA: ['
|
194
|
+
isA: ['verb'],
|
195
195
|
level: 0,
|
196
196
|
bridge: "{ ...next(operator) }",
|
197
|
-
generatorp: ({context
|
197
|
+
generatorp: ({context}) => `disarm`,
|
198
198
|
semantic: ({api, context}) => {
|
199
199
|
api.disarm()
|
200
200
|
}
|
@@ -202,10 +202,10 @@ let configStruct = {
|
|
202
202
|
{
|
203
203
|
where: where(),
|
204
204
|
id: "strip",
|
205
|
-
isA: ['
|
205
|
+
isA: ['verb'],
|
206
206
|
level: 0,
|
207
207
|
bridge: "{ ...next(operator) }",
|
208
|
-
generatorp: ({context
|
208
|
+
generatorp: ({context}) => `strip`,
|
209
209
|
semantic: ({api, context}) => {
|
210
210
|
api.strip()
|
211
211
|
}
|
@@ -213,10 +213,10 @@ let configStruct = {
|
|
213
213
|
{
|
214
214
|
where: where(),
|
215
215
|
id: "call",
|
216
|
-
isA: ['
|
216
|
+
isA: ['verb'],
|
217
217
|
level: 0,
|
218
218
|
bridge: "{ ...next(operator), item: after[0], name: after[1] }",
|
219
|
-
generatorp: ({context, g}) => `call ${g(context.item)} ${g(context.name)}`,
|
219
|
+
generatorp: async ({context, g}) => `call ${await g(context.item)} ${await g(context.name)}`,
|
220
220
|
semantic: ({api, context}) => {
|
221
221
|
api.setName(context.item, context.name.name.value)
|
222
222
|
}
|
@@ -224,10 +224,10 @@ let configStruct = {
|
|
224
224
|
{
|
225
225
|
where: where(),
|
226
226
|
id: "putOn",
|
227
|
-
isA: ['
|
227
|
+
isA: ['verb'],
|
228
228
|
level: 0,
|
229
229
|
bridge: "{ ...next(operator), item: after[0] }",
|
230
|
-
generatorp: ({context, g}) => `put on ${g(context.item)}`,
|
230
|
+
generatorp: async ({context, g}) => `put on ${await g(context.item)}`,
|
231
231
|
semantic: ({api, context}) => {
|
232
232
|
if (context.item.name) {
|
233
233
|
api.wear({ name: context.item.name.value, type: 'outfit' })
|
@@ -239,11 +239,11 @@ let configStruct = {
|
|
239
239
|
{
|
240
240
|
where: where(),
|
241
241
|
id: "wear",
|
242
|
-
isA: ['
|
242
|
+
isA: ['verb'],
|
243
243
|
words: ['where'], // the speech recognizer hears 'where' not 'wear'
|
244
244
|
level: 0,
|
245
245
|
bridge: "{ ...next(operator), item: after[0] }",
|
246
|
-
generatorp: ({context, g}) => `wear ${g(context.item)}`,
|
246
|
+
generatorp: async ({context, g}) => `wear ${await g(context.item)}`,
|
247
247
|
semantic: ({api, context}) => {
|
248
248
|
if (context.item.name) {
|
249
249
|
api.wear({ name: context.item.name.value, type: 'outfit' })
|
@@ -255,13 +255,12 @@ let configStruct = {
|
|
255
255
|
{
|
256
256
|
where: where(),
|
257
257
|
id: "equip",
|
258
|
-
isA: ['
|
258
|
+
isA: ['verb'],
|
259
259
|
level: 0,
|
260
260
|
localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'] ],
|
261
261
|
bridge: "{ ...next(operator), item: after[0] }",
|
262
|
-
generatorp: ({context, g}) => `equip ${g(context.item)}`,
|
263
|
-
semantic: ({api, context
|
264
|
-
// const value = e(context.item)
|
262
|
+
generatorp: async ({context, g}) => `equip ${await g(context.item)}`,
|
263
|
+
semantic: async ({api, context}) => {
|
265
264
|
let condition
|
266
265
|
if (context.item.condition) {
|
267
266
|
condition = { selector: context.item.condition.marker, property: context.item.condition.property[0].marker }
|
@@ -272,37 +271,35 @@ let configStruct = {
|
|
272
271
|
{
|
273
272
|
where: where(),
|
274
273
|
id: "toDrink",
|
275
|
-
isA: ['
|
274
|
+
isA: ['verb'],
|
276
275
|
level: 0,
|
277
276
|
bridge: "{ ...next(operator), item: after[0] }",
|
278
|
-
generatorp: ({context, g}) => `drink ${g(context.item)}`,
|
279
|
-
semantic: ({api, context, e}) => {
|
280
|
-
const value = e(context.item)
|
277
|
+
generatorp: async ({context, g}) => `drink ${await g(context.item)}`,
|
278
|
+
semantic: async ({api, context, e}) => {
|
279
|
+
const value = await e(context.item)
|
281
280
|
api.drink(value.value)
|
282
281
|
}
|
283
282
|
},
|
284
283
|
{
|
285
284
|
where: where(),
|
286
285
|
id: "eat",
|
287
|
-
isA: ['
|
286
|
+
isA: ['verb'],
|
288
287
|
level: 0,
|
289
288
|
bridge: "{ ...next(operator), item: after[0] }",
|
290
|
-
generatorp: ({context, g}) => `eat ${g(context.item)}`,
|
291
|
-
semantic: ({api, context
|
292
|
-
// const value = e(context.item)
|
293
|
-
// api.eat(value.value)
|
289
|
+
generatorp: async ({context, g}) => `eat ${await g(context.item)}`,
|
290
|
+
semantic: async ({api, context}) => {
|
294
291
|
api.eat(context.item.value)
|
295
292
|
}
|
296
293
|
},
|
297
294
|
{
|
298
295
|
where: where(),
|
299
296
|
id: "take",
|
300
|
-
isA: ['
|
297
|
+
isA: ['verb'],
|
301
298
|
level: 0,
|
302
299
|
bridge: "{ ...next(operator), item: after[0] }",
|
303
|
-
generatorp: ({context, g}) => `take ${g(context.item)}`,
|
304
|
-
semantic: ({api, context, e}) => {
|
305
|
-
const value = e(context.item)
|
300
|
+
generatorp: async ({context, g}) => `take ${await g(context.item)}`,
|
301
|
+
semantic: async ({api, context, e}) => {
|
302
|
+
const value = await e(context.item)
|
306
303
|
api.take(value.value)
|
307
304
|
}
|
308
305
|
},
|
@@ -371,22 +368,22 @@ let configStruct = {
|
|
371
368
|
*/
|
372
369
|
{
|
373
370
|
id: "apply",
|
374
|
-
isA: ['
|
371
|
+
isA: ['verb'],
|
375
372
|
level: 0,
|
376
373
|
bridge: "{ ...next(operator), item: after[0] }",
|
377
|
-
generatorp: ({context, g}) => `apply ${g(context.item)}`,
|
378
|
-
semantic: ({api, context, e}) => {
|
374
|
+
generatorp: async ({context, g}) => `apply ${await g(context.item)}`,
|
375
|
+
semantic: async ({api, context, e}) => {
|
379
376
|
// { item: 'stimpak', quantity: <number>, to?: [ { part: ['arm', 'leg', 'torso', head'], side?: ['left', 'right'] } ] }
|
380
|
-
const quantity = context.item.quantity ? e(context.item.quantity).value : 1
|
377
|
+
const quantity = context.item.quantity ? (await e(context.item.quantity)).value : 1
|
381
378
|
api.apply({ item: 'stimpak', quantity })
|
382
379
|
}
|
383
380
|
},
|
384
381
|
{
|
385
382
|
id: "go",
|
386
|
-
isA: ['
|
383
|
+
isA: ['verb'],
|
387
384
|
level: 0,
|
388
385
|
bridge: "{ ...next(operator), showable: after[0].showable }",
|
389
|
-
generatorp: ({context, g}) => `go to ${g(context.showable)}`,
|
386
|
+
generatorp: async ({context, g}) => `go to ${await g(context.showable)}`,
|
390
387
|
semantic: ({api, context}) => {
|
391
388
|
api.setDisplay(context.showable.value)
|
392
389
|
}
|
@@ -396,14 +393,14 @@ let configStruct = {
|
|
396
393
|
isA: ['preposition'],
|
397
394
|
level: 0,
|
398
395
|
bridge: "{ ...next(operator), showable: after[0] }",
|
399
|
-
generatorp: ({context, g}) => `to ${g(context.showable)}`,
|
396
|
+
generatorp: async ({context, g}) => `to ${await g(context.showable)}`,
|
400
397
|
},
|
401
398
|
{
|
402
399
|
id: "showWeapons",
|
403
|
-
isA: ['
|
400
|
+
isA: ['verb'],
|
404
401
|
level: 0,
|
405
402
|
bridge: "{ ...next(operator), showable: after[0] }",
|
406
|
-
generatorp: ({context, g}) => `show ${g(context.showable)}`,
|
403
|
+
generatorp: async ({context, g}) => `show ${await g(context.showable)}`,
|
407
404
|
semantic: ({api, context}) => {
|
408
405
|
if (context.showable.quantity && context.showable.quantity.value == 'all') {
|
409
406
|
api.showWeapons('all')
|
@@ -414,10 +411,10 @@ let configStruct = {
|
|
414
411
|
},
|
415
412
|
{
|
416
413
|
id: "show",
|
417
|
-
isA: ['
|
414
|
+
isA: ['verb'],
|
418
415
|
level: 0,
|
419
416
|
bridge: "{ ...next(operator), showable: after[0] }",
|
420
|
-
generatorp: ({context, g}) => `show ${g(context.showable)}`,
|
417
|
+
generatorp: async ({context, g}) => `show ${await g(context.showable)}`,
|
421
418
|
semantic: ({api, context}) => {
|
422
419
|
api.setDisplay(context.showable.value)
|
423
420
|
}
|
@@ -524,25 +521,17 @@ const template = {
|
|
524
521
|
"medicine and stimpaks are takeable",
|
525
522
|
"item modifies properties",
|
526
523
|
"damage luck hp rads value ap charisma range and accuracy are item properties",
|
527
|
-
|
524
|
+
config,
|
528
525
|
]
|
529
526
|
}
|
530
527
|
|
531
|
-
const createConfig = () => {
|
532
|
-
const config = new Config({ name: 'pipboy' }, module)
|
533
|
-
config.stop_auto_rebuild()
|
534
|
-
config.add(hierarchy(), countable(), comparable(), help(), math())
|
535
|
-
// console.log('config.config.hierarchy', JSON.stringify(config.config.hierarchy, null, 2))
|
536
|
-
// console.log('config.hierarchy', config.hierarchy)
|
537
|
-
config.api = api
|
538
|
-
config.restart_auto_rebuild()
|
539
|
-
return config
|
540
|
-
}
|
541
|
-
|
542
528
|
knowledgeModule({
|
529
|
+
config: { name: 'pipboy' },
|
530
|
+
includes: [hierarchy, countable, comparable, help, math],
|
531
|
+
api: () => new API(),
|
532
|
+
|
543
533
|
module,
|
544
534
|
description: 'Control a pipboy with speech',
|
545
|
-
createConfig,
|
546
535
|
template: { template, instance },
|
547
536
|
test: {
|
548
537
|
name: './pipboy.test.json',
|