tpmkms_4wp 8.0.0-beta.3 → 8.0.0-beta.31

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 (86) hide show
  1. package/common/animals.instance.json +2542 -1375
  2. package/common/animals.js +2 -2
  3. package/common/avatar.js +2 -2
  4. package/common/characters.js +9 -11
  5. package/common/colors.instance.json +6646 -3529
  6. package/common/colors.js +2 -2
  7. package/common/colors.test.json +345 -780
  8. package/common/comparable.js +2 -15
  9. package/common/concept.js +17 -11
  10. package/common/countable.js +5 -5
  11. package/common/crew.instance.json +12534 -6597
  12. package/common/crew.js +4 -4
  13. package/common/crew.test.json +714 -452
  14. package/common/currency.js +7 -7
  15. package/common/dialogues.js +53 -138
  16. package/common/dimension.instance.json +246 -265
  17. package/common/dimension.js +12 -12
  18. package/common/dimension.test.json +446 -1640
  19. package/common/edible.instance.json +19308 -10008
  20. package/common/edible.js +2 -2
  21. package/common/emotions.instance.json +122 -129
  22. package/common/emotions.js +4 -4
  23. package/common/events.js +6 -6
  24. package/common/fastfood.instance.json +219409 -111252
  25. package/common/fastfood.js +24 -24
  26. package/common/formulas.instance.json +222 -256
  27. package/common/formulas.js +14 -14
  28. package/common/gdefaults.js +13 -13
  29. package/common/help.js +4 -4
  30. package/common/help.test.json +10 -22
  31. package/common/helpers/concept.js +9 -6
  32. package/common/helpers/dialogues.js +2 -3
  33. package/common/helpers/properties.js +48 -58
  34. package/common/hierarchy.js +12 -16
  35. package/common/javascript.js +8 -8
  36. package/common/kirk.instance.json +564 -290
  37. package/common/kirk.js +2 -2
  38. package/common/length.instance.json +5153 -4677
  39. package/common/length.js +2 -2
  40. package/common/math.instance.json +152 -1169
  41. package/common/math.js +11 -11
  42. package/common/meta.js +22 -29
  43. package/common/negation.instance.json +2 -0
  44. package/common/negation.js +38 -0
  45. package/common/negation.test.json +308 -0
  46. package/common/numbers.js +3 -3
  47. package/common/ordering.instance.json +292 -230
  48. package/common/ordering.js +5 -5
  49. package/common/people.instance.json +1902 -1015
  50. package/common/people.js +4 -5
  51. package/common/percentages.instance.json +2 -0
  52. package/common/percentages.js +57 -0
  53. package/common/percentages.test.json +751 -0
  54. package/common/pipboy.instance.json +7720 -6386
  55. package/common/pipboy.js +29 -32
  56. package/common/pokemon.instance.json +3954 -2081
  57. package/common/pokemon.js +4 -4
  58. package/common/pos.js +1 -1
  59. package/common/pressure.instance.json +1265 -1193
  60. package/common/pressure.js +2 -2
  61. package/common/properties.instance.json +106 -61
  62. package/common/properties.js +54 -125
  63. package/common/punctuation.js +2 -2
  64. package/common/reports.instance.json +557 -559
  65. package/common/reports.js +54 -74
  66. package/common/scorekeeper.js +13 -21
  67. package/common/sdefaults.js +13 -3
  68. package/common/sizeable.js +2 -2
  69. package/common/spock.instance.json +564 -290
  70. package/common/spock.js +2 -2
  71. package/common/stgame.js +13 -9
  72. package/common/stm.js +4 -4
  73. package/common/tell.js +10 -10
  74. package/common/temperature.instance.json +1297 -1209
  75. package/common/temperature.js +2 -2
  76. package/common/tester.js +2 -2
  77. package/common/testing.js +5 -5
  78. package/common/time.js +7 -7
  79. package/common/tokenize.js +1 -1
  80. package/common/ui.instance.json +238 -259
  81. package/common/ui.js +9 -9
  82. package/common/weight.instance.json +4905 -4166
  83. package/common/weight.js +2 -2
  84. package/common/yesno.js +1 -1
  85. package/main.js +51 -46
  86. package/package.json +13 -6
@@ -60,14 +60,14 @@ let configStruct = {
60
60
  {
61
61
  where: where(),
62
62
  match: ({context}) => context.marker == 'currency' && !context.isAbstract,
63
- apply: ({context, g}) => {
63
+ apply: async ({context, g}) => {
64
64
  word = Object.assign({}, context.amount)
65
65
  word.isAbstract = true
66
66
  word.marker = 'currency'
67
67
  word.units = context.units
68
68
  word.value = context.amount.value
69
69
  // generator = [({context}) => context.marker == 'currency' && context.units == words.units && context.value > 1 && context.isAbstract, ({context, g}) => words.many ]
70
- return `${g(context.amount.value)} ${g(word)}`
70
+ return `${await g(context.amount.value)} ${await g(word)}`
71
71
  }
72
72
  },
73
73
  ],
@@ -90,12 +90,12 @@ let configStruct = {
90
90
  ],
91
91
  };
92
92
 
93
- const createConfig = () => {
93
+ const createConfig = async () => {
94
94
  const config = new Config(configStruct, module)
95
95
  config.stop_auto_rebuild()
96
- config.add(numbersKM())
97
- config.api = api
98
- config.initializer( ({config, objects, apis, addWord, addGenerator, baseConfig, uuid}) => {
96
+ await config.add(numbersKM)
97
+ await config.setApi(api)
98
+ await config.initializer( ({config, objects, apis, addWord, addGenerator, baseConfig, uuid}) => {
99
99
  // const api = config.km('currency').api
100
100
  // const api = kms.currency.api
101
101
  const api = apis('currency')
@@ -128,7 +128,7 @@ const createConfig = () => {
128
128
  })
129
129
  }
130
130
  })
131
- config.restart_auto_rebuild()
131
+ await config.restart_auto_rebuild()
132
132
  return config
133
133
  }
134
134
 
@@ -3,6 +3,7 @@ const meta = require('./meta.js')
3
3
  const gdefaults = require('./gdefaults.js')
4
4
  const sdefaults = require('./sdefaults.js')
5
5
  const pos = require('./pos.js')
6
+ const negation = require('./negation.js')
6
7
  const punctuation = require('./punctuation.js')
7
8
  const stm = require('./stm.js')
8
9
  const _ = require('lodash')
@@ -59,7 +60,6 @@ let configStruct = {
59
60
  "(<the|> ([theAble|]))",
60
61
  "(<a|a,an> ([theAble|]))",
61
62
  // "([unknown])",
62
- "([not] ([notAble|]))",
63
63
 
64
64
  "([be] ([briefOrWordy|]))",
65
65
 
@@ -105,7 +105,7 @@ let configStruct = {
105
105
  {
106
106
  id: 'makeObject',
107
107
  bridge: "{ ...next(operator), object: after[0] }",
108
- generatorp: ({context, gp}) => `${context.word} ${gp(context.object)}`,
108
+ generatorp: async ({context, gp}) => `${context.word} ${await gp(context.object)}`,
109
109
  semantic: ({config, context, api}) => {
110
110
  api.makeObject({ context: context.object, config, types: [] })
111
111
  }
@@ -113,7 +113,7 @@ let configStruct = {
113
113
  {
114
114
  id: 'setIdSuffix',
115
115
  bridge: "{ ...next(operator), suffix: after[0] }",
116
- generatorp: ({context, gp}) => `${context.word} ${gp(context.suffix)}`,
116
+ generatorp: async ({context, gp}) => `${context.word} ${await gp(context.suffix)}`,
117
117
  semantic: ({context, api}) => {
118
118
  api.setIdSuffix(context.suffix.text)
119
119
  }
@@ -163,8 +163,8 @@ let configStruct = {
163
163
  level: 0,
164
164
  isA: ['preposition'],
165
165
  bridge: "{ ...next(operator), toObject: after[0] }",
166
- generatorp: ({context, gp}) => {
167
- return `to ${gp(context.toObject)}`
166
+ generatorp: async ({context, gp}) => {
167
+ return `to ${await gp(context.toObject)}`
168
168
  },
169
169
  },
170
170
  { id: "toAble", level: 0, bridge: "{ ...next(operator) }" },
@@ -172,9 +172,6 @@ let configStruct = {
172
172
  { id: "be", level: 0, bridge: "{ ...next(operator), type: after[0] }" },
173
173
  { id: "briefOrWordy", level: 0, bridge: "{ ...next(operator) }" },
174
174
 
175
- { id: "notAble", level: 0, bridge: "{ ...next(operator) }" },
176
- { id: "not", level: 0, bridge: "{ ...after, negated: true }" },
177
-
178
175
  { id: "yesno", level: 0, bridge: "{ ...next(operator) }" },
179
176
  { id: "canBeQuestion", level: 0, bridge: "{ ...next(operator) }" },
180
177
  { id: "canBeQuestion", level: 1, bridge: "{ ...next(operator) }" },
@@ -337,7 +334,6 @@ let configStruct = {
337
334
  // ['questionMark', 'isEd'],
338
335
  ['a', 'articlePOS'],
339
336
  ['the', 'articlePOS'],
340
- ['unknown', 'notAble'],
341
337
  ['unknown', 'theAble'],
342
338
  ['unknown', 'queryable'],
343
339
  ['it', 'queryable'],
@@ -354,10 +350,10 @@ let configStruct = {
354
350
  where: where(),
355
351
  notes: "handle making responses brief",
356
352
  match: ({context, objects}) => (context.topLevel || context.isResponse) && objects.brief && !context.briefWasRun,
357
- apply: ({context, g}) => {
353
+ apply: async ({context, g}) => {
358
354
  const focussed = focus(context)
359
355
  context.briefWasRun = true
360
- return g(focussed)
356
+ return await g(focussed)
361
357
  },
362
358
  priority: -2,
363
359
  },
@@ -418,8 +414,8 @@ let configStruct = {
418
414
  // ({context, hierarchy}) => context.marker == 'list' && context.paraphrase && context.value,
419
415
  // ({context, hierarchy}) => context.marker == 'list' && context.value,
420
416
  match: ({context, hierarchy}) => context.marker == 'list' && context.paraphrase && context.value && context.value.length > 0 && context.value[0].marker == 'yesno',
421
- apply: ({context, g, gs}) => {
422
- return `${g(context.value[0])} ${gs(context.value.slice(1), ', ', ' and ')}`
417
+ apply: async ({context, g, gs}) => {
418
+ return `${await g(context.value[0])} ${await gs(context.value.slice(1), ', ', ' and ')}`
423
419
  }
424
420
  },
425
421
 
@@ -429,49 +425,24 @@ let configStruct = {
429
425
  // ({context, hierarchy}) => context.marker == 'list' && context.paraphrase && context.value,
430
426
  // ({context, hierarchy}) => context.marker == 'list' && context.value,
431
427
  match: ({context, hierarchy}) => context.marker == 'list' && context.value,
432
- apply: ({context, gs}) => {
428
+ apply: async ({context, gs}) => {
433
429
  if (context.newLinesOnly) {
434
- return gs(context.value, '\n')
430
+ return await gs(context.value, '\n')
435
431
  } else {
436
- return gs(context.value, ', ', ' and ')
432
+ return await gs(context.value, ', ', ' and ')
437
433
  }
438
434
  }
439
435
  },
440
436
 
441
- {
442
- where: where(),
443
- notes: 'paraphrase a negation',
444
- match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'notAble') && context.negated, // && !context.isQuery && !context.paraphrase && context.value,
445
- apply: ({context, g}) => {
446
- context.negated = false
447
- const result = g(context.value)
448
- context.negated = true
449
- return `not ${result}`
450
- }
451
- },
452
-
453
437
  {
454
438
  where: where(),
455
439
  notes: 'paraphrase a queryable response',
456
440
  // || context.evalue.paraphrase -> when the evalue acts as a paraphrase value
457
441
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'queryable') && !context.isQuery && context.evalue && (!context.paraphrase || context.evalue.paraphrase),
458
- apply: ({context, g}) => {
459
- return g(context.evalue)
460
- }
461
- },
462
- /* dup of one above
463
- {
464
- where: where(),
465
- notes: 'paraphrase a queryable',
466
- match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'queryable') && !context.isQuery && !context.paraphrase && context.evalue,
467
- apply: ({context, g}) => {
468
- const oldValue = context.evalue.paraphrase
469
- const result = g(context.evalue)
470
- context.evalue.paraphrase = oldValue
471
- return result
442
+ apply: async ({context, g}) => {
443
+ return await g(context.evalue)
472
444
  }
473
445
  },
474
- */
475
446
  {
476
447
  where: where(),
477
448
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'queryable') && !context.isQuery && context.isSelf && context.subject == 'my',
@@ -480,7 +451,7 @@ let configStruct = {
480
451
  {
481
452
  where: where(),
482
453
  match: ({context, hierarchy}) => ['it', 'what'].includes(context.marker) && context.paraphrase,
483
- apply: ({g, context}) => `${context.word}`
454
+ apply: ({context}) => `${context.word}`
484
455
  },
485
456
  {
486
457
  where: where(),
@@ -490,15 +461,8 @@ let configStruct = {
490
461
  {
491
462
  where: where(),
492
463
  match: ({context, hierarchy}) => ['my', 'your'].includes(context.subject) && hierarchy.isA(context.marker, 'queryable') && context.paraphrase,
493
- apply: ({g, context}) => `${context.subject} ${context.marker}`
494
- },
495
- /*
496
- {
497
- where: where(),
498
- match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'theAble') && context.paraphrase && context.wantsValue && !context.pullFromContext,
499
- apply: ({g, context}) => `a ${context.word}`
464
+ apply: ({context}) => `${context.subject} ${context.marker}`
500
465
  },
501
- */
502
466
  {
503
467
  where: where(),
504
468
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'queryable') && !context.isQuery && context.subject,
@@ -523,8 +487,8 @@ let configStruct = {
523
487
  {
524
488
  where: where(),
525
489
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'canBeQuestion') && context.paraphrase && context.topLevel && context.query,
526
- apply: ({context, gp}) => {
527
- return `${gp({...context, topLevel: undefined})}?`
490
+ apply: async ({context, gp}) => {
491
+ return `${await gp({...context, topLevel: undefined})}?`
528
492
  },
529
493
  priority: -1,
530
494
  },
@@ -532,27 +496,27 @@ let configStruct = {
532
496
  where: where(),
533
497
  notes: "x is y",
534
498
  match: ({context, hierarchy}) => { return hierarchy.isA(context.marker, 'is') && context.paraphrase },
535
- apply: ({context, g, gp}) => {
536
- return `${g({ ...context.one, paraphrase: true })} ${context.word} ${gp(context.two)}`
499
+ apply: async ({context, g, gp}) => {
500
+ return `${await g({ ...context.one, paraphrase: true })} ${context.word} ${await gp(context.two)}`
537
501
  }
538
502
  },
539
503
  {
540
504
  where: where(),
541
505
  notes: 'is with a response defined',
542
506
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.evalue,
543
- apply: ({context, g, gs}) => {
507
+ apply: async ({context, g, gs}) => {
544
508
  const response = context.evalue;
545
509
  const concept = response.concept;
546
510
  if (concept) {
547
511
  concept.paraphrase = true
548
512
  concept.isSelf = true
549
- const instance = g(response.instance)
550
- return `${g(concept)} ${context.word} ${instance}`
513
+ const instance = await g(response.instance)
514
+ return `${await g(concept)} ${context.word} ${instance}`
551
515
  } else {
552
516
  if (Array.isArray(response)) {
553
- return `${gs(response)}`
517
+ return `${await gs(response)}`
554
518
  } else {
555
- return `${g(response)}`
519
+ return `${await g(response)}`
556
520
  }
557
521
  }
558
522
  }
@@ -561,13 +525,13 @@ let configStruct = {
561
525
  where: where(),
562
526
  notes: 'x is y (not a response)',
563
527
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && !context.evalue,
564
- apply: ({context, g, gp, gr, callId}) => {
528
+ apply: async ({context, g, gp, gr, callId}) => {
565
529
  if ((context.two.evalue || {}).marker == 'answerNotKnown') {
566
- return g(context.two.evalue)
530
+ return await g(context.two.evalue)
567
531
  }
568
532
 
569
533
  if (!context.isResponse) {
570
- return `${gp(context.one)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${g(context.two)}`
534
+ return `${await gp(context.one)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${await g(context.two)}`
571
535
  }
572
536
 
573
537
  const hasFocus = (property) => {
@@ -592,17 +556,15 @@ let configStruct = {
592
556
  }
593
557
  // greg101
594
558
  if (focus == 'one') {
595
- return `${g(context.two)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${gp(context.one)}`
559
+ return `${await g(context.two)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${await gp(context.one)}`
596
560
  } else {
597
561
  // TODO fix this using the assumed and that whole mess. change isResponse to useValue
598
562
  if (context.isResponse) {
599
- return `${gp(context.one, { responding: true })} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${g(context.two)}`
563
+ return `${await gp(context.one, { responding: true })} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${await g(context.two)}`
600
564
  } else {
601
- return `${gp(context.one)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${gr(context.two)}`
565
+ return `${await gp(context.one)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${await gr(context.two)}`
602
566
  }
603
- // return `${gp(context.one)} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${g(context.two)}`
604
567
  }
605
- // return `${g({...context.one})} ${isMany(context.one) || isMany(context.two) || isMany(context) ? "are" : "is"} ${g(context.two)}`
606
568
  },
607
569
  },
608
570
  ],
@@ -628,10 +590,10 @@ let configStruct = {
628
590
  {
629
591
  where: where(),
630
592
  match: ({context}) => context.marker === 'error',
631
- apply: ({context, gp}) => {
593
+ apply: async ({context, gp}) => {
632
594
  context.evalue = "That is not known"
633
595
  if (context.reason) {
634
- context.evalue += ` because ${gp(context.reason)}`
596
+ context.evalue += ` because ${await gp(context.reason)}`
635
597
  }
636
598
  context.isResponse = true
637
599
  }
@@ -641,7 +603,7 @@ let configStruct = {
641
603
  notes: 'pull from context',
642
604
  // match: ({context}) => context.marker == 'it' && context.pullFromContext, // && context.value,
643
605
  match: ({context, callId}) => context.pullFromContext && !context.same, // && context.value,
644
- apply: ({callId, context, s, kms, e, log, retry}) => {
606
+ apply: async ({callId, context, kms, e, log, retry}) => {
645
607
  if (true) {
646
608
  /*
647
609
  {
@@ -675,7 +637,7 @@ let configStruct = {
675
637
  return
676
638
  }
677
639
 
678
- const instance = e(context.value)
640
+ const instance = await e(context.value)
679
641
  if (instance.evalue && !instance.edefault) {
680
642
  context.value = instance.evalue
681
643
  }
@@ -717,7 +679,7 @@ let configStruct = {
717
679
  // avoid loops
718
680
  if (context.marker != 'unknown') {
719
681
  if (context.value.marker != context.marker) {
720
- const instance = e(context.value)
682
+ const instance = await e(context.value)
721
683
  if (instance.evalue && !instance.edefault) {
722
684
  context.value = instance.evalue
723
685
  }
@@ -739,7 +701,7 @@ let configStruct = {
739
701
  */
740
702
 
741
703
  match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query,
742
- apply: ({context, s, log, km, objects, e}) => {
704
+ apply: async ({context, s, log, km, objects, e}) => {
743
705
  const one = context.one;
744
706
  const two = context.two;
745
707
  let concept, value;
@@ -753,7 +715,7 @@ let configStruct = {
753
715
  // km('dialogues').api.mentioned(concept)
754
716
  // TODO wtf is the next line?
755
717
  value = JSON.parse(JSON.stringify(value))
756
- let instance = e(value)
718
+ let instance = await e(value)
757
719
  if (false && instance.evalue) {
758
720
  km('stm').api.mentioned(value)
759
721
  }
@@ -817,14 +779,14 @@ let configStruct = {
817
779
  where: where(),
818
780
  notes: 'x is y. handles x is a kind of y or x = y in the stm',
819
781
  match: ({context}) => context.marker == 'is' && !context.query && context.one && context.two,
820
- apply: ({context, s, log, api, kms, config}) => {
782
+ apply: async ({context, s, log, api, kms, config}) => {
821
783
  // const oneZero = { ...context.one }
822
784
  // const twoZero = { ...context.two }
823
785
 
824
786
  const one = context.one;
825
787
  const two = context.two;
826
788
  one.same = two;
827
- const onePrime = s(one)
789
+ const onePrime = await s(one)
828
790
  if (!onePrime.sameWasProcessed) {
829
791
  warningSameNotEvaluated(log, one)
830
792
  } else {
@@ -837,7 +799,7 @@ let configStruct = {
837
799
  let twoPrime;
838
800
  if (!onePrime.sameWasProcessed) {
839
801
  two.same = one
840
- twoPrime = s(two)
802
+ twoPrime = await s(two)
841
803
  if (!twoPrime.sameWasProcessed) {
842
804
  warningSameNotEvaluated(log, two)
843
805
  } else {
@@ -856,20 +818,6 @@ let configStruct = {
856
818
  }
857
819
  }
858
820
  },
859
- /*
860
- {
861
- where: where(),
862
- notes: 'x = y in the stm',
863
- match: ({context}) => context.marker == 'is' && !context.query && context.one && context.two,
864
- apply: ({context, s, log, api, kms, config}) => {
865
- const one = context.one;
866
- const two = context.two;
867
- api.makeObject({ context: one, config, types: context.two.types || [] })
868
- kms.stm.api.setVariable(one.value, two)
869
- kms.stm.api.mentioned(one, two)
870
- }
871
- },
872
- */
873
821
  {
874
822
  where: where(),
875
823
  notes: 'get variable from stm',
@@ -877,48 +825,15 @@ let configStruct = {
877
825
  match: ({context, kms}) => context.evaluate && kms.stm.api.getVariable(context.value) != context.value,
878
826
  // match: ({context, kms}) => context.evaluate,
879
827
  priority: -1,
880
- apply: ({context, kms, e}) => {
828
+ apply: async ({context, kms, e}) => {
881
829
  const api = kms.stm.api
882
830
  context.value = api.getVariable(context.value)
883
- /*
884
- if (!context.value && context.marker !== 'unknown') {
885
- context.value = api.getVariable(context.marker)
886
- }
887
- */
888
831
  if (context.value && context.value.marker) {
889
- context.evalue = e(context.value)
832
+ context.evalue = await e(context.value)
890
833
  }
891
834
  context.focusableForPhrase = true
892
835
  }
893
836
  },
894
- /*
895
- {
896
- where: where(),
897
- notes: 'default handle evaluate',
898
- match: ({context, kms}) => context.evaluate && context.value,
899
- // match: ({context, kms}) => context.evaluate,
900
- // priority: -1,
901
- apply: ({context, kms, e}) => {
902
- if (context.value && context.value.marker) {
903
- context.evalue = e(context.value)
904
- }
905
- }
906
- },
907
- */
908
- /*
909
- {
910
- priority: 2,
911
- notes: 'evaluate top level not already done',
912
- match: ({context}) => false && context.topLevel && !context.evalue,
913
- apply: ({context, e}) => {
914
- const instance = e({ ...context, value: undefined, topLevel: undefined })
915
- if (instance.evalue && !instance.edefault) {
916
- context.evalue = instance
917
- context.isResponse = true
918
- }
919
- }
920
- },
921
- */
922
837
  ],
923
838
  };
924
839
 
@@ -963,9 +878,9 @@ const getAsk = (config) => (uuid) => {
963
878
  where: semantic.where || ask.where || where(2),
964
879
  source: 'response',
965
880
  match: (args) => semantic.match(args),
966
- apply: (args) => {
881
+ apply: async (args) => {
967
882
  setWasApplied(true)
968
- semantic.apply(args)
883
+ await semantic.apply(args)
969
884
  },
970
885
  })
971
886
  }
@@ -982,7 +897,7 @@ const getAsk = (config) => (uuid) => {
982
897
  onNevermind: ask.onNevermind,
983
898
  source: 'question',
984
899
  match: ({ context }) => context.marker == 'controlEnd' || context.marker == 'controlBetween',
985
- apply: (args) => {
900
+ apply: async (args) => {
986
901
  let matchq = ask.matchq
987
902
  let applyq = ask.applyq
988
903
  if (!matchq) {
@@ -993,11 +908,11 @@ const getAsk = (config) => (uuid) => {
993
908
  return ask.applyq(args)
994
909
  }
995
910
  }
996
- if (matchq(args)) {
911
+ if (await matchq(args)) {
997
912
  setWasAsked(true)
998
913
  setWasApplied(false)
999
914
  // args.context.motivationKeep = true
1000
- args.verbatim(applyq(args))
915
+ args.verbatim(await applyq(args))
1001
916
  /*
1002
917
  args.context.verbatim = applyq(args)
1003
918
  args.context.isResponse = true;
@@ -1018,12 +933,12 @@ const getAsk = (config) => (uuid) => {
1018
933
  }
1019
934
 
1020
935
 
1021
- const createConfig = () => {
936
+ const createConfig = async () => {
1022
937
  const config = new Config(configStruct, module)
1023
938
  config.stop_auto_rebuild()
1024
- config.api = api
1025
- config.add(gdefaults(), sdefaults(), pos(), stm(), meta(), punctuation())
1026
- config.initializer( ({objects, config, isModule}) => {
939
+ await config.setApi(api)
940
+ await config.add(gdefaults, sdefaults, pos, negation, stm, meta, punctuation)
941
+ await config.initializer( ({objects, config, isModule}) => {
1027
942
  /* TODO add this beck in. some stuff from config needs to be here
1028
943
  config.addArgs((args) => ({
1029
944
  e: (context) => config.api.getEvaluator(args.s, args.log, context),
@@ -1063,7 +978,7 @@ const createConfig = () => {
1063
978
  config.addWord("doesable", { id: "doesAble", "initial": "{}" })
1064
979
  }
1065
980
  })
1066
- config.restart_auto_rebuild()
981
+ await config.restart_auto_rebuild()
1067
982
  return config
1068
983
  }
1069
984