tpmkms_4wp 8.0.0-beta.4 → 8.0.0-beta.40

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.
Files changed (96) 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/math.instance.json +176 -1168
  47. package/common/math.js +11 -11
  48. package/common/meta.js +22 -29
  49. package/common/nameable.instance.json +2 -0
  50. package/common/nameable.js +136 -0
  51. package/common/nameable.test.json +2121 -0
  52. package/common/negation.instance.json +2 -0
  53. package/common/negation.js +38 -0
  54. package/common/negation.test.json +308 -0
  55. package/common/numbers.js +3 -3
  56. package/common/ordering.instance.json +340 -228
  57. package/common/ordering.js +5 -5
  58. package/common/people.instance.json +2066 -1014
  59. package/common/people.js +4 -5
  60. package/common/percentages.instance.json +2 -0
  61. package/common/percentages.js +57 -0
  62. package/common/percentages.test.json +751 -0
  63. package/common/pipboy.instance.json +7974 -6300
  64. package/common/pipboy.js +29 -32
  65. package/common/pokemon.instance.json +4207 -2069
  66. package/common/pokemon.js +4 -4
  67. package/common/pos.js +1 -1
  68. package/common/pressure.instance.json +1341 -1189
  69. package/common/pressure.js +2 -2
  70. package/common/properties.instance.json +130 -60
  71. package/common/properties.js +54 -125
  72. package/common/punctuation.js +2 -2
  73. package/common/reports.instance.json +595 -557
  74. package/common/reports.js +58 -76
  75. package/common/scorekeeper.js +14 -22
  76. package/common/sdefaults.js +13 -3
  77. package/common/sizeable.js +2 -2
  78. package/common/spock.instance.json +583 -289
  79. package/common/spock.js +2 -2
  80. package/common/stgame.js +13 -9
  81. package/common/stm.js +136 -19
  82. package/common/stm.test.json +1734 -1
  83. package/common/tell.js +10 -10
  84. package/common/temperature.instance.json +1484 -1204
  85. package/common/temperature.js +2 -2
  86. package/common/tester.js +2 -2
  87. package/common/testing.js +5 -5
  88. package/common/time.js +7 -7
  89. package/common/tokenize.js +1 -1
  90. package/common/ui.instance.json +257 -258
  91. package/common/ui.js +9 -9
  92. package/common/weight.instance.json +5212 -4233
  93. package/common/weight.js +2 -2
  94. package/common/yesno.js +1 -1
  95. package/main.js +57 -46
  96. package/package.json +24 -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