tpmkms_4wp 8.0.0-beta.4 → 8.0.0-beta.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/common/animals.instance.json +2855 -1363
  2. package/common/animals.js +2 -2
  3. package/common/articles.js +108 -0
  4. package/common/articles.test.json +310 -0
  5. package/common/avatar.js +2 -2
  6. package/common/characters.js +9 -11
  7. package/common/colors.instance.json +6980 -3523
  8. package/common/colors.js +2 -2
  9. package/common/colors.test.json +345 -780
  10. package/common/comparable.js +2 -15
  11. package/common/concept.js +17 -11
  12. package/common/countable.js +5 -5
  13. package/common/crew.instance.json +13032 -6570
  14. package/common/crew.js +4 -4
  15. package/common/crew.test.json +714 -452
  16. package/common/currency.js +7 -7
  17. package/common/dialogues.js +117 -238
  18. package/common/dimension.instance.json +265 -264
  19. package/common/dimension.js +13 -13
  20. package/common/dimension.test.json +446 -1640
  21. package/common/edible.instance.json +19910 -9988
  22. package/common/edible.js +2 -2
  23. package/common/emotions.instance.json +146 -128
  24. package/common/emotions.js +4 -4
  25. package/common/evaluate.instance.json +2 -0
  26. package/common/evaluate.js +55 -0
  27. package/common/evaluate.test.json +574 -0
  28. package/common/events.js +6 -6
  29. package/common/fastfood.instance.json +221110 -111293
  30. package/common/fastfood.js +25 -25
  31. package/common/formulas.instance.json +241 -255
  32. package/common/formulas.js +14 -14
  33. package/common/gdefaults.js +19 -19
  34. package/common/help.js +4 -4
  35. package/common/help.test.json +22 -22
  36. package/common/helpers/concept.js +9 -6
  37. package/common/helpers/dialogues.js +2 -3
  38. package/common/helpers/properties.js +48 -58
  39. package/common/helpers.js +1 -1
  40. package/common/hierarchy.js +12 -16
  41. package/common/javascript.js +8 -8
  42. package/common/kirk.instance.json +583 -289
  43. package/common/kirk.js +2 -2
  44. package/common/length.instance.json +5530 -4754
  45. package/common/length.js +2 -2
  46. package/common/listener.js +54 -0
  47. package/common/listener.test.json +104 -0
  48. package/common/math.instance.json +176 -1168
  49. package/common/math.js +11 -11
  50. package/common/meta.js +22 -29
  51. package/common/nameable.instance.json +2 -0
  52. package/common/nameable.js +142 -0
  53. package/common/nameable.test.json +2121 -0
  54. package/common/negation.instance.json +2 -0
  55. package/common/negation.js +38 -0
  56. package/common/negation.test.json +308 -0
  57. package/common/numbers.js +3 -3
  58. package/common/ordering.instance.json +340 -228
  59. package/common/ordering.js +5 -5
  60. package/common/people.instance.json +2066 -1014
  61. package/common/people.js +4 -5
  62. package/common/percentages.instance.json +2 -0
  63. package/common/percentages.js +57 -0
  64. package/common/percentages.test.json +751 -0
  65. package/common/pipboy.instance.json +7974 -6300
  66. package/common/pipboy.js +29 -32
  67. package/common/pokemon.instance.json +4207 -2069
  68. package/common/pokemon.js +4 -4
  69. package/common/pos.js +1 -1
  70. package/common/pressure.instance.json +1341 -1189
  71. package/common/pressure.js +2 -2
  72. package/common/properties.instance.json +130 -60
  73. package/common/properties.js +54 -125
  74. package/common/punctuation.js +2 -2
  75. package/common/reports.instance.json +595 -557
  76. package/common/reports.js +58 -76
  77. package/common/scorekeeper.js +14 -22
  78. package/common/sdefaults.js +13 -3
  79. package/common/sizeable.js +2 -2
  80. package/common/spock.instance.json +583 -289
  81. package/common/spock.js +2 -2
  82. package/common/stgame.js +13 -9
  83. package/common/stm.js +162 -19
  84. package/common/stm.test.json +1734 -1
  85. package/common/tell.js +10 -10
  86. package/common/temperature.instance.json +1484 -1204
  87. package/common/temperature.js +2 -2
  88. package/common/tester.js +2 -2
  89. package/common/testing.js +5 -5
  90. package/common/time.js +7 -7
  91. package/common/tokenize.js +1 -1
  92. package/common/ui.instance.json +257 -258
  93. package/common/ui.js +9 -9
  94. package/common/weight.instance.json +5212 -4233
  95. package/common/weight.js +2 -2
  96. package/common/yesno.js +1 -1
  97. package/main.js +59 -46
  98. package/package.json +27 -6
package/common/reports.js CHANGED
@@ -38,7 +38,7 @@ const compareValue = (property, v1, v2) => {
38
38
  const newReport = ({km, objects}) => {
39
39
  objects.tempReportId += 1
40
40
  const reportId = `tempReport${objects.tempReportId}`
41
- km('stm').api.mentioned({ marker: "report", text: reportId, types: [ "report" ], value: reportId, word: reportId })
41
+ km('stm').api.mentioned({ context: { marker: "report", text: reportId, types: [ "report" ], value: reportId, word: reportId } })
42
42
  // name to listing
43
43
  objects.listings[reportId] = {
44
44
  columns: ['name', 'supplier'],
@@ -100,7 +100,7 @@ const apiTemplate = (marker, testData) => {
100
100
  },
101
101
  productGenerator: {
102
102
  match: ({context}) => context.marker == marker && context.isInstance,
103
- apply: ({g, context}) => `${context.name}`,
103
+ apply: ({context}) => `${context.name}`,
104
104
  }
105
105
  }
106
106
  }
@@ -190,9 +190,9 @@ let configStruct = {
190
190
  bridge: "{ ...next(operator), on: { marker: 'report', pullFromContext: true }, from: after[0], to: after[1] }",
191
191
  directionBridge: "{ ...next(operator), on: { marker: 'report', pullFromContext: true }, directionBridge: true, from: after[0], to: after[1] }",
192
192
 
193
- generatorp: ({context, gp}) => `move ${gp(context.from)} ${gp(context.to)}`,
194
- semantic: ({context, e, objects, kms, insert}) => {
195
- const report = e(context.on)
193
+ generatorp: async ({context, gp}) => `move ${await gp(context.from)} ${await gp(context.to)}`,
194
+ semantic: async ({context, e, objects, kms, insert}) => {
195
+ const report = await e(context.on)
196
196
  const id = report.value.value
197
197
  const listing = objects.listings[id]
198
198
 
@@ -218,9 +218,9 @@ let configStruct = {
218
218
  where: where(),
219
219
  id: "remove", level: 0,
220
220
  bridge: "{ ...next(operator), on: { marker: 'report', pullFromContext: true }, removee: after[0] }",
221
- generatorp: ({context, gp}) => `remove ${gp(context.removee)}`,
222
- semantic: ({context, e, kms, insert, objects}) => {
223
- const report = e(context.on)
221
+ generatorp: async ({context, gp}) => `remove ${await gp(context.removee)}`,
222
+ semantic: async ({context, e, kms, insert, objects}) => {
223
+ const report = await e(context.on)
224
224
  const id = report.value.value
225
225
  const listing = objects.listings[id]
226
226
  const column = context.removee.index.value
@@ -232,7 +232,7 @@ let configStruct = {
232
232
  where: where(),
233
233
  id: "column", level: 0,
234
234
  bridge: "{ ...next(operator), index: after[0] }",
235
- generatorp: ({context, gp}) => `column ${gp(context.index)}`,
235
+ generatorp: async ({context, gp}) => `column ${await gp(context.index)}`,
236
236
  },
237
237
  { id: "ordering", level: 0, bridge: "{ ...next(operator) }" },
238
238
  { id: "direction", level: 0, bridge: "{ ...next(operator) }" },
@@ -248,10 +248,10 @@ let configStruct = {
248
248
  {
249
249
  where: where(),
250
250
  match: ({context}) => context.marker == 'report' && context.describe,
251
- apply: ({context, apis, gp, gs, objects}) => {
251
+ apply: async ({context, apis, gs, objects}) => {
252
252
  const listings = objects.listings[context.value]
253
253
  // {"type":"tables","columns":["name"],"ordering":[]}
254
- return `for ${listings.api}, showing the ${wordNumber('property', listings.columns.length > 1)} ${gs(listings.columns, ' ', ' and ')} as ${listings.type}`
254
+ return `for ${listings.api}, showing the ${wordNumber('property', listings.columns.length > 1)} ${await gs(listings.columns, ' ', ' and ')} as ${listings.type}`
255
255
  }
256
256
  },
257
257
  {
@@ -297,8 +297,8 @@ let configStruct = {
297
297
  level: 0,
298
298
  isA: ['verby'],
299
299
  bridge: "{ ...next(operator), report: after[0] }",
300
- "generatorp": ({g, context}) => `describe ${g(context.report)}`,
301
- "generatorr": ({gp, context, apis, objects, config}) => {
300
+ "generatorp": async ({g, context}) => `describe ${await g(context.report)}`,
301
+ "generatorr": async ({gp, context, apis, objects, config}) => {
302
302
  const reports = propertyToArray(context.report)
303
303
  let response = ''
304
304
  for (let report of reports) {
@@ -308,11 +308,11 @@ let configStruct = {
308
308
  continue
309
309
  }
310
310
  const description = {describe: true, word: reportId, types:["report"], value: reportId, text: reportId, marker: "report"}
311
- response += `${reportId}: ${gp(description)}\n`
311
+ response += `${reportId}: ${await gp(description)}\n`
312
312
  }
313
313
  } else {
314
314
  // response += `${gp(report)}: ${describe(report.value)}\n`
315
- response += `${gp(report)}: ${gp({ ...report, describe: true })}\n`
315
+ response += `${await gp(report)}: ${await gp({ ...report, describe: true })}\n`
316
316
  }
317
317
  }
318
318
  return response
@@ -327,21 +327,23 @@ let configStruct = {
327
327
  id: "call",
328
328
  level: 0,
329
329
  bridge: "{ ...next(operator), namee: after[0], name: after[1] }",
330
- generatorp: ({g, context}) => `call ${g(context.namee)} ${g(context.name)}`,
331
- semantic: ({g, context, objects, e, config, km}) => {
332
- const namee = e(context.namee).evalue
330
+ generatorp: async ({g, context}) => `call ${await g(context.namee)} ${await g(context.name)}`,
331
+ semantic: async ({context, objects, e, config, km}) => {
332
+ const namee = (await e(context.namee)).evalue
333
333
  const id = namee.value
334
334
  const listing = objects.listings[id]
335
335
  const name = context.name.text
336
336
  objects.listings[name] = {...listing}
337
337
  config.addWord(`${name}`, { id: 'report', initial: `{ value: "${name}" }` })
338
338
  km('stm').api.mentioned({
339
+ context: {
339
340
  marker: "report",
340
341
  text: name,
341
342
  types: [ "report" ],
342
343
  value: id,
343
344
  word: name
344
- })
345
+ }
346
+ })
345
347
  }
346
348
  },
347
349
  ],
@@ -383,41 +385,23 @@ let configStruct = {
383
385
 
384
386
  priorities: [
385
387
  { "context": [['ordering', 0], ['articlePOS', 0], ], "choose": [0] },
386
- /*
387
- [['the', 0], ['ordering', 0]],
388
- [['listAction', 0], ['cost', 1]],
389
- [['answer', 0], ['listAction', 0], ['the', 0]],
390
- [['answer', 0], ['listAction', 0], ['the', 0], ['with', 0]],
391
- */
392
388
  ],
393
389
  generators: [
394
390
  {
395
391
  notes: 'paraphrase show',
396
392
  where: where(),
397
393
  match: ({context, objects}) => context.marker == 'show' && context.paraphrase,
398
- apply: ({gs, gsp, gp, e, apis, objects, context}) => {
394
+ apply: async ({gs, gp, e, apis, objects, context}) => {
399
395
  if (context.report) {
400
- return `show ${gp(context.report)}`
396
+ return `show ${await gp(context.report)}`
401
397
  } else {
402
- const report = e(context.on)
398
+ const report = await e(context.on)
403
399
  const id = report.value.value
404
400
  const listing = objects.listings[id]
405
- return `the properties being shown are ${gs(listing.columns, ', ', ' and ')}`
401
+ return `the properties being shown are ${await gs(listing.columns, ', ', ' and ')}`
406
402
  }
407
403
  }
408
404
  },
409
- /*
410
- {
411
- where: where(),
412
- match: ({context, isA}) => isA(context.marker, 'reportAction') && context.on && context.isResponse,
413
- apply: ({context, g}) => `${g({...context, on: undefined})} on ${g(context.on)}`
414
- },
415
- {
416
- where: where(),
417
- match: ({context, isA}) => isA(context.marker, 'reportAction') && context.on && context.paraphrase,
418
- apply: ({context, g}) => `${g({...context, on: undefined})} on ${g(context.on)}`
419
- },
420
- */
421
405
  {
422
406
  where: where(),
423
407
  match: ({context}) => context.marker == 'product' && !context.isInstance,
@@ -426,12 +410,12 @@ let configStruct = {
426
410
  {
427
411
  where: where(),
428
412
  match: ({context}) => context.marker == 'listAction' && context.paraphrase,
429
- apply: ({g, context}) => `list ${g(context.what)}`
413
+ apply: async ({g, context}) => `list ${await g(context.what)}`
430
414
  },
431
415
  {
432
416
  notes: 'show the results as a sentence',
433
417
  where: where(),
434
- match: ({context, objects, apis}) => {
418
+ match: ({context, objects}) => {
435
419
  if (!(context.marker == 'listAction' && context.isResponse)) {
436
420
  return false
437
421
  }
@@ -439,15 +423,15 @@ let configStruct = {
439
423
  return true
440
424
  }
441
425
  },
442
- apply: ({g, gs, context, objects}) => {
426
+ apply: async ({g, gs, context, objects}) => {
443
427
  const listing = objects.listings[context.id]
444
- return `the ${g(listing.api)} are ${gs(context.listing, ' ', ' and ')}`
428
+ return `the ${await g(listing.api)} are ${await gs(context.listing, ' ', ' and ')}`
445
429
  }
446
430
  },
447
431
  {
448
432
  notes: 'show the results as a table',
449
433
  where: where(),
450
- match: ({context, objects, apis}) => {
434
+ match: ({context, objects}) => {
451
435
  if (!(context.marker == 'listAction' && context.isResponse && !context.paraphrase)) {
452
436
  return false
453
437
  }
@@ -455,7 +439,7 @@ let configStruct = {
455
439
  return true
456
440
  }
457
441
  },
458
- apply: ({g, gs, objects, context, e, kms, apis}) => {
442
+ apply: async ({objects, context, e, kms}) => {
459
443
  let report = '';
460
444
  const products = context.listing
461
445
  const columns = objects.listings[context.id].columns
@@ -463,21 +447,21 @@ let configStruct = {
463
447
  kms.stm.api.setVariable('price', { marker: 'price', value: 23 })
464
448
  kms.stm.api.setVariable('quantity', { marker: 'quantity', value: 3 })
465
449
  const c1 = { marker: 'worth', value: 'worth' }
466
- r1 = toEValue(e(c1));
467
- r2 = e({ marker: 'supplier', value: 'supplier' })
468
- // api.listing.api = context.what.api
450
+ r1 = toEValue(await e(c1));
451
+ r2 = await e({ marker: 'supplier', value: 'supplier' })
469
452
  }
470
- const data = products.map( (product) => {
453
+ const data = []
454
+ for (const product of products) {
471
455
  const row = []
472
456
  for (let p of Object.keys(product)) {
473
457
  kms.stm.api.setVariable(p, { marker: p, value: product[p] })
474
458
  }
475
459
  for (let property of columns) {
476
- const value = toEValue(e({ marker: property, value: property }));
460
+ const value = toEValue(await e({ marker: property, value: property }));
477
461
  row.push(value)
478
462
  }
479
- return row
480
- });
463
+ data.push(row)
464
+ };
481
465
  report += table([columns].concat(data))
482
466
  return report
483
467
  }
@@ -485,12 +469,12 @@ let configStruct = {
485
469
  {
486
470
  where: where(),
487
471
  match: ({context}) => context.marker == 'answer' && context.paraphrase,
488
- apply: ({g, context}) => `answer with ${context.type}`
472
+ apply: ({context}) => `answer with ${context.type}`
489
473
  },
490
474
  {
491
475
  where: where(),
492
476
  match: ({context}) => context.marker == 'answer' && !context.paraphrase,
493
- apply: ({g, context}) => `answering with ${context.type}`
477
+ apply: ({context}) => `answering with ${context.type}`
494
478
  },
495
479
  ],
496
480
 
@@ -499,13 +483,13 @@ let configStruct = {
499
483
  where: where(),
500
484
  notes: 'handle show semantic',
501
485
  match: ({context}) => context.marker == 'show',
502
- apply: ({context, e, km, kms, apis, insert, config, objects}) => {
486
+ apply: async ({context, e, km, kms, apis, insert, config, objects}) => {
503
487
  if (context.report) {
504
488
  const values = propertyToArray(context.report)
505
489
  const responses = []
506
490
  for (let value of values) {
507
491
  if (!value.value || value.pullFromContext) {
508
- value = e(value)
492
+ value = await e(value)
509
493
  }
510
494
  let id = value.value
511
495
  if (value.evalue) {
@@ -528,7 +512,7 @@ let configStruct = {
528
512
  }
529
513
  context.isResponse = true
530
514
  } else {
531
- const report = e(context.on)
515
+ const report = await e(context.on)
532
516
  const id = report.value.value
533
517
  const listing = objects.listings[id]
534
518
  const values = propertyToArray(context.properties)
@@ -551,11 +535,11 @@ let configStruct = {
551
535
  notes: 'get the report data',
552
536
  where: where(),
553
537
  match: ({context}) => context.marker == 'listAction',
554
- apply: ({context, e, objects, apis, km, config}) => {
538
+ apply: async ({context, e, objects, apis, km, config}) => {
555
539
  //const name = '***current***'
556
540
  if (context.api) {
557
541
  // id = newReport({km, objects})
558
- const report = e({ marker: 'report', pullFromContext: true })
542
+ const report = await e({ marker: 'report', pullFromContext: true })
559
543
  const id = report.value.value
560
544
  const listing = objects.listings[id]
561
545
  listing.api = context.api
@@ -563,7 +547,7 @@ let configStruct = {
563
547
  context.id = id
564
548
  context.listing = apis[listing.api].getAllProducts(listing)
565
549
  } else {
566
- const report = e({ marker: 'report', pullFromContext: true })
550
+ const report = await e({ marker: 'report', pullFromContext: true })
567
551
  const id = report.evalue.value
568
552
  const listing = objects.listings[id]
569
553
  const api = apis[listing.api]
@@ -573,16 +557,16 @@ let configStruct = {
573
557
  context.isResponse = true
574
558
  },
575
559
  },
576
- [
577
- ({context}) => context.marker == 'answer',
578
- ({e, context, objects, kms, insert}) => {
579
- const report = e({ marker: 'report', pullFromContext: true })
560
+ {
561
+ match: ({context}) => context.marker == 'answer',
562
+ apply: async ({e, context, objects, kms, insert}) => {
563
+ const report = await e({ marker: 'report', pullFromContext: true })
580
564
  const id = report.value.value
581
565
  const listing = objects.listings[id]
582
566
  listing.type = context.type
583
567
  kms.events.api.happens(insert, { marker: "changes", level: 1, changeable: { marker: 'report', pullFromContext: true } })
584
568
  }
585
- ],
569
+ },
586
570
  ],
587
571
  };
588
572
 
@@ -604,18 +588,16 @@ const initializeApi = (config, api, km) => {
604
588
  // config.addWord(type, {"id": "report", "initial": `${open} value: '${type}' ${close}` })
605
589
  }
606
590
 
607
- const createConfig = () => {
591
+ const createConfig = async () => {
608
592
  const config = new Config(configStruct, module)
609
593
  config.stop_auto_rebuild()
610
- config.add(currencyKM(), helpKM(), math(), events())
611
- config.multiApi = initializeApi
594
+ await config.add(currencyKM, helpKM, math, events)
595
+ await config.setMultiApi(initializeApi)
612
596
  // mode this to non-module init only
613
- config.initializer(({config, objects, km, isModule}) => {
597
+ await config.initializer(async ({config, objects, km, kms, isModule}) => {
614
598
  if (!isModule) {
615
- km('reports').addAPI(api1)
616
- km('reports').addAPI(api2)
617
- // config.addAPI(api1)
618
- // config.addAPI(api2)
599
+ await kms.reports.addAPI(api1)
600
+ await kms.reports.addAPI(api2)
619
601
  }
620
602
  objects.tempReportId = 0
621
603
  objects.listings = {
@@ -625,7 +607,7 @@ const createConfig = () => {
625
607
  objects.listings[id].api = 'clothes'
626
608
  }
627
609
  })
628
- config.restart_auto_rebuild()
610
+ await config.restart_auto_rebuild()
629
611
  return config
630
612
  }
631
613
 
@@ -43,7 +43,7 @@ const setNextPlayer = (km, objects) => {
43
43
  word: "turn"
44
44
  }
45
45
  const api = km('stm').api
46
- api.mentioned(turn)
46
+ api.mentioned({ context: turn })
47
47
  }
48
48
 
49
49
  const addPlayer = (objects, config, player) => {
@@ -122,36 +122,29 @@ let configStruct = {
122
122
  {
123
123
  where: where(),
124
124
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.isResponse && context.two && context.two.marker == 'next',
125
- apply: ({context, g}) => {
125
+ apply: async ({context, g}) => {
126
126
  const response = context.evalue;
127
127
  const concept = response.two;
128
128
  concept.paraphrase = true
129
129
  concept.isSelf = true
130
- const instance = g(concept.evalue)
130
+ const instance = await g(concept.evalue)
131
131
  return instance
132
132
  }
133
133
  },
134
134
  {
135
135
  where: where(),
136
136
  match: ({context}) => context.marker == 'point' && context.isResponse && context.amount,
137
- apply: ({context, g}) => `${g(context.amount)} points`
137
+ apply: async ({context, g}) => `${await g(context.amount)} points`
138
138
  },
139
139
  {
140
140
  where: where(),
141
141
  match: ({context}) => context.marker == 'scored' && context.paraphrase,
142
- apply: ({context, g}) => `${g(context.player)} got ${g(context.points)}`
142
+ apply: async ({context, g}) => `${await g(context.player)} got ${await g(context.points)}`
143
143
  },
144
- /*
145
- {
146
- where: where(),
147
- match: ({context}) => context.marker == 'enumeration' && context.paraphrase,
148
- apply: ({context, g}) => `${g(context.concept)} are ${g(context.items)}`
149
- },
150
- */
151
144
  {
152
145
  where: where(),
153
146
  match: ({context}) => context.marker == 'start' && context.paraphrase,
154
- apply: ({context, g}) => `start ${g(context.arg)}`
147
+ apply: async ({context, g}) => `start ${await g(context.arg)}`
155
148
  },
156
149
 
157
150
  ],
@@ -161,7 +154,6 @@ let configStruct = {
161
154
  where: where(),
162
155
  match: ({context}) => context.marker == 'player' && context.same,
163
156
  apply: ({context, objects, config, km}) => {
164
- //objects.players = context.same.value.map( (props) => props.value )
165
157
  const players = context.same.value.map( (props) => props.value )
166
158
  setPlayers(objects, config, players)
167
159
  for (let player of objects.players) {
@@ -205,11 +197,11 @@ let configStruct = {
205
197
  matchq: ({objects}) => objects.players.length == 0,
206
198
  applyq: () => 'who are the players?',
207
199
  matchr: ({context}) => context.marker == 'list',
208
- applyr: ({context, gs, objects, config}) => {
200
+ applyr: async ({context, gs, objects, config}) => {
209
201
  const players = context.value.map( (player) => player.value )
210
202
  setPlayers(objects, config, players)
211
203
  objects.allPlayersAreKnown = true;
212
- context.verbatim = `The players are ${gs(objects.players, ' ', ' and ')}`
204
+ context.verbatim = `The players are ${await gs(objects.players, ' ', ' and ')}`
213
205
  context.isResponse = true;
214
206
  }
215
207
  }
@@ -242,12 +234,12 @@ let configStruct = {
242
234
  {
243
235
  where: where(),
244
236
  match: ({context}) => context.marker == 'player' && context.evaluate && context.pullFromContext,
245
- apply: ({context, objects, gs}) => {
237
+ apply: async ({context, objects, gs}) => {
246
238
  const players = objects.players
247
239
  if (players.length == 0) {
248
240
  context.evalue = 'no one'
249
241
  } else {
250
- context.evalue = gs(players, ' ', ' and ')
242
+ context.evalue = await gs(players, ' ', ' and ')
251
243
  }
252
244
  }
253
245
  },
@@ -350,11 +342,11 @@ let configStruct = {
350
342
  ],
351
343
  };
352
344
 
353
- const createConfig = () => {
345
+ const createConfig = async () => {
354
346
  const config = new Config(configStruct, module)
355
347
  config.stop_auto_rebuild()
356
- config.add(dialogues(), numbers(), properties())
357
- config.initializer( ({objects, km, isModule}) => {
348
+ await config.add(dialogues, numbers, properties)
349
+ await config.initializer( ({objects, km, isModule}) => {
358
350
  objects.players = []
359
351
  objects.nextPlayer = undefined;
360
352
  setNextPlayer(km, objects);
@@ -362,7 +354,7 @@ const createConfig = () => {
362
354
  objects.winningScore = null
363
355
  objects.allPlayersAreKnown = false;
364
356
  })
365
- config.restart_auto_rebuild()
357
+ await config.restart_auto_rebuild()
366
358
  return config
367
359
  }
368
360
 
@@ -12,17 +12,27 @@ let configStruct = {
12
12
  // match: ({context}) => context.flatten || context.listable && context.value[0].flatten,
13
13
  match: ({context}) => context.flatten || context.listable && context.value.some((value) => value.flatten),
14
14
  // match: ({context}) => context.flatten || context.listable || (Array.isArray(context.value) && context.value.some((value) => value.flatten)),
15
- apply: ({config, km, context, s}) => {
15
+ apply: async ({config, km, context, s}) => {
16
16
  const [flats, wf] = flatten(['list'], context)
17
17
  for (let flat of flats) {
18
- s({ ...flat, flatten: false })
18
+ await s({ ...flat, flatten: false })
19
19
  }
20
20
  }
21
21
  },
22
+ {
23
+ notes: 'semanticIsEvaluate',
24
+ where: where(),
25
+ priority: -1,
26
+ match: ({context}) => context.semanticIsEvaluate,
27
+ apply: async ({context, e}) => {
28
+ context.value = await e({ ...context, semanticIsEvaluate: false })
29
+ context.isResponse
30
+ }
31
+ },
22
32
  ],
23
33
  };
24
34
 
25
- const createConfig = () => new Config(configStruct, module)
35
+ const createConfig = async () => new Config(configStruct, module)
26
36
 
27
37
  knowledgeModule({
28
38
  module,
@@ -52,9 +52,9 @@ let configStruct = {
52
52
  ]
53
53
  };
54
54
 
55
- const createConfig = () => {
55
+ const createConfig = async () => {
56
56
  const config = new Config(configStruct, module)
57
- config.add(dialogues(), numbers())
57
+ await config.add(dialogues, numbers)
58
58
  return config
59
59
  }
60
60