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/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,12 @@ 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
|
+
localHierarchy: [ ['unknown', 'wearable'] ],
|
244
245
|
level: 0,
|
245
246
|
bridge: "{ ...next(operator), item: after[0] }",
|
246
|
-
generatorp: ({context, g}) => `wear ${g(context.item)}`,
|
247
|
+
generatorp: async ({context, g}) => `wear ${await g(context.item)}`,
|
247
248
|
semantic: ({api, context}) => {
|
248
249
|
if (context.item.name) {
|
249
250
|
api.wear({ name: context.item.name.value, type: 'outfit' })
|
@@ -255,13 +256,12 @@ let configStruct = {
|
|
255
256
|
{
|
256
257
|
where: where(),
|
257
258
|
id: "equip",
|
258
|
-
isA: ['
|
259
|
+
isA: ['verb'],
|
259
260
|
level: 0,
|
260
|
-
localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'] ],
|
261
|
+
localHierarchy: [ ['weapon', 'equipable'], ['thisitthat', 'equipable'], ['equipable', 'unknown'] ],
|
261
262
|
bridge: "{ ...next(operator), item: after[0] }",
|
262
|
-
generatorp: ({context, g}) => `equip ${g(context.item)}`,
|
263
|
-
semantic: ({api, context
|
264
|
-
// const value = e(context.item)
|
263
|
+
generatorp: async ({context, g}) => `equip ${await g(context.item)}`,
|
264
|
+
semantic: async ({api, context}) => {
|
265
265
|
let condition
|
266
266
|
if (context.item.condition) {
|
267
267
|
condition = { selector: context.item.condition.marker, property: context.item.condition.property[0].marker }
|
@@ -272,37 +272,36 @@ let configStruct = {
|
|
272
272
|
{
|
273
273
|
where: where(),
|
274
274
|
id: "toDrink",
|
275
|
-
isA: ['
|
275
|
+
isA: ['verb'],
|
276
276
|
level: 0,
|
277
277
|
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)
|
278
|
+
generatorp: async ({context, g}) => `drink ${await g(context.item)}`,
|
279
|
+
semantic: async ({api, context, e}) => {
|
280
|
+
const value = await e(context.item)
|
281
281
|
api.drink(value.value)
|
282
282
|
}
|
283
283
|
},
|
284
284
|
{
|
285
285
|
where: where(),
|
286
286
|
id: "eat",
|
287
|
-
|
287
|
+
localHierarchy: [ ['unknown', 'edible'] ],
|
288
|
+
isA: ['verb'],
|
288
289
|
level: 0,
|
289
290
|
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)
|
291
|
+
generatorp: async ({context, g}) => `eat ${await g(context.item)}`,
|
292
|
+
semantic: async ({api, context}) => {
|
294
293
|
api.eat(context.item.value)
|
295
294
|
}
|
296
295
|
},
|
297
296
|
{
|
298
297
|
where: where(),
|
299
298
|
id: "take",
|
300
|
-
isA: ['
|
299
|
+
isA: ['verb'],
|
301
300
|
level: 0,
|
302
301
|
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)
|
302
|
+
generatorp: async ({context, g}) => `take ${await g(context.item)}`,
|
303
|
+
semantic: async ({api, context, e}) => {
|
304
|
+
const value = await e(context.item)
|
306
305
|
api.take(value.value)
|
307
306
|
}
|
308
307
|
},
|
@@ -371,22 +370,22 @@ let configStruct = {
|
|
371
370
|
*/
|
372
371
|
{
|
373
372
|
id: "apply",
|
374
|
-
isA: ['
|
373
|
+
isA: ['verb'],
|
375
374
|
level: 0,
|
376
375
|
bridge: "{ ...next(operator), item: after[0] }",
|
377
|
-
generatorp: ({context, g}) => `apply ${g(context.item)}`,
|
378
|
-
semantic: ({api, context, e}) => {
|
376
|
+
generatorp: async ({context, g}) => `apply ${await g(context.item)}`,
|
377
|
+
semantic: async ({api, context, e}) => {
|
379
378
|
// { 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
|
379
|
+
const quantity = context.item.quantity ? (await e(context.item.quantity)).value : 1
|
381
380
|
api.apply({ item: 'stimpak', quantity })
|
382
381
|
}
|
383
382
|
},
|
384
383
|
{
|
385
384
|
id: "go",
|
386
|
-
isA: ['
|
385
|
+
isA: ['verb'],
|
387
386
|
level: 0,
|
388
387
|
bridge: "{ ...next(operator), showable: after[0].showable }",
|
389
|
-
generatorp: ({context, g}) => `go to ${g(context.showable)}`,
|
388
|
+
generatorp: async ({context, g}) => `go to ${await g(context.showable)}`,
|
390
389
|
semantic: ({api, context}) => {
|
391
390
|
api.setDisplay(context.showable.value)
|
392
391
|
}
|
@@ -396,14 +395,14 @@ let configStruct = {
|
|
396
395
|
isA: ['preposition'],
|
397
396
|
level: 0,
|
398
397
|
bridge: "{ ...next(operator), showable: after[0] }",
|
399
|
-
generatorp: ({context, g}) => `to ${g(context.showable)}`,
|
398
|
+
generatorp: async ({context, g}) => `to ${await g(context.showable)}`,
|
400
399
|
},
|
401
400
|
{
|
402
401
|
id: "showWeapons",
|
403
|
-
isA: ['
|
402
|
+
isA: ['verb'],
|
404
403
|
level: 0,
|
405
404
|
bridge: "{ ...next(operator), showable: after[0] }",
|
406
|
-
generatorp: ({context, g}) => `show ${g(context.showable)}`,
|
405
|
+
generatorp: async ({context, g}) => `show ${await g(context.showable)}`,
|
407
406
|
semantic: ({api, context}) => {
|
408
407
|
if (context.showable.quantity && context.showable.quantity.value == 'all') {
|
409
408
|
api.showWeapons('all')
|
@@ -414,10 +413,10 @@ let configStruct = {
|
|
414
413
|
},
|
415
414
|
{
|
416
415
|
id: "show",
|
417
|
-
isA: ['
|
416
|
+
isA: ['verb'],
|
418
417
|
level: 0,
|
419
418
|
bridge: "{ ...next(operator), showable: after[0] }",
|
420
|
-
generatorp: ({context, g}) => `show ${g(context.showable)}`,
|
419
|
+
generatorp: async ({context, g}) => `show ${await g(context.showable)}`,
|
421
420
|
semantic: ({api, context}) => {
|
422
421
|
api.setDisplay(context.showable.value)
|
423
422
|
}
|
@@ -522,27 +521,19 @@ const template = {
|
|
522
521
|
"vegetables and fruit are food",
|
523
522
|
"cola and pop are drinks",
|
524
523
|
"medicine and stimpaks are takeable",
|
525
|
-
"item modifies
|
524
|
+
"item modifies property",
|
526
525
|
"damage luck hp rads value ap charisma range and accuracy are item properties",
|
527
|
-
|
526
|
+
config,
|
528
527
|
]
|
529
528
|
}
|
530
529
|
|
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
530
|
knowledgeModule({
|
531
|
+
config: { name: 'pipboy' },
|
532
|
+
includes: [hierarchy, countable, comparable, help, math],
|
533
|
+
api: () => new API(),
|
534
|
+
|
543
535
|
module,
|
544
536
|
description: 'Control a pipboy with speech',
|
545
|
-
createConfig,
|
546
537
|
template: { template, instance },
|
547
538
|
test: {
|
548
539
|
name: './pipboy.test.json',
|
@@ -551,7 +542,7 @@ knowledgeModule({
|
|
551
542
|
objects: [
|
552
543
|
'apply', 'change', 'disarm', 'drink', 'eat', 'equip', 'setName', 'strip', 'take', 'wear',
|
553
544
|
],
|
554
|
-
context: defaultContextCheck,
|
545
|
+
context: defaultContextCheck(),
|
555
546
|
},
|
556
547
|
},
|
557
548
|
})
|