ekms 8.0.0-beta.9 → 8.0.0-beta.90
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 +51 -62
- 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/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
|
-
localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'] ],
|
260
|
+
localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'], ['equipable', 'unknown'] ],
|
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
|
}
|
@@ -522,27 +519,19 @@ const template = {
|
|
522
519
|
"vegetables and fruit are food",
|
523
520
|
"cola and pop are drinks",
|
524
521
|
"medicine and stimpaks are takeable",
|
525
|
-
"item modifies
|
522
|
+
"item modifies property",
|
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',
|
@@ -551,7 +540,7 @@ knowledgeModule({
|
|
551
540
|
objects: [
|
552
541
|
'apply', 'change', 'disarm', 'drink', 'eat', 'equip', 'setName', 'strip', 'take', 'wear',
|
553
542
|
],
|
554
|
-
context: defaultContextCheck,
|
543
|
+
context: defaultContextCheck(),
|
555
544
|
},
|
556
545
|
},
|
557
546
|
})
|