ekms 8.0.0-beta.9 → 8.0.0-beta.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/common/animals.instance.json +2915 -1553
  2. package/common/animals.js +17 -20
  3. package/common/articles.js +103 -0
  4. package/common/articles.test.json +310 -0
  5. package/common/asking.instance.json +2 -0
  6. package/common/asking.js +253 -0
  7. package/common/asking.test.json +2290 -0
  8. package/common/avatar.js +6 -10
  9. package/common/characters.js +23 -29
  10. package/common/colors.instance.json +7487 -4114
  11. package/common/colors.js +5 -9
  12. package/common/colors.test.json +345 -780
  13. package/common/comparable.instance.json +1750 -0
  14. package/common/comparable.js +36 -28
  15. package/common/comparable.test.json +1196 -2
  16. package/common/concept.js +121 -119
  17. package/common/conjunction.instance.json +2 -0
  18. package/common/conjunction.js +104 -0
  19. package/common/conjunction.test.json +322 -0
  20. package/common/countable.js +20 -14
  21. package/common/countable.test.json +1050 -0
  22. package/common/crew.instance.json +13553 -7026
  23. package/common/crew.js +37 -42
  24. package/common/crew.test.json +714 -452
  25. package/common/currency.js +28 -46
  26. package/common/dialogues.js +150 -426
  27. package/common/dialogues.test.json +0 -786
  28. package/common/dimension.instance.json +491 -262
  29. package/common/dimension.js +22 -24
  30. package/common/dimension.test.json +508 -1702
  31. package/common/edible.instance.json +20446 -10806
  32. package/common/edible.js +4 -9
  33. package/common/emotions.instance.json +192 -124
  34. package/common/emotions.js +36 -39
  35. package/common/evaluate.instance.json +2 -0
  36. package/common/evaluate.js +53 -0
  37. package/common/evaluate.test.json +574 -0
  38. package/common/events.js +11 -15
  39. package/common/fastfood.instance.json +222642 -113618
  40. package/common/fastfood.js +76 -86
  41. package/common/fastfood.test.json +268 -90
  42. package/common/formulas.instance.json +443 -247
  43. package/common/formulas.js +20 -27
  44. package/common/gdefaults.js +40 -27
  45. package/common/help.js +9 -14
  46. package/common/help.test.json +65 -16
  47. package/common/helpers/concept.js +10 -7
  48. package/common/helpers/dialogues.js +5 -3
  49. package/common/helpers/properties.js +67 -64
  50. package/common/helpers.js +35 -24
  51. package/common/hierarchy.js +17 -25
  52. package/common/javascript.js +12 -19
  53. package/common/kirk.instance.json +583 -299
  54. package/common/kirk.js +6 -9
  55. package/common/length.instance.json +9005 -5001
  56. package/common/length.js +5 -9
  57. package/common/listener.js +48 -0
  58. package/common/listener.test.json +104 -0
  59. package/common/math.instance.json +406 -1178
  60. package/common/math.js +17 -21
  61. package/common/meta.js +24 -48
  62. package/common/nameable.instance.json +2 -0
  63. package/common/nameable.js +144 -0
  64. package/common/nameable.test.json +3191 -0
  65. package/common/negation.js +11 -7
  66. package/common/numbers.js +28 -32
  67. package/common/ordering.instance.json +443 -343
  68. package/common/ordering.js +81 -87
  69. package/common/ordinals.instance.json +2 -0
  70. package/common/ordinals.js +60 -0
  71. package/common/ordinals.test.json +306 -0
  72. package/common/people.instance.json +2210 -1150
  73. package/common/people.js +9 -14
  74. package/common/percentages.instance.json +2 -0
  75. package/common/percentages.js +53 -0
  76. package/common/percentages.test.json +751 -0
  77. package/common/pipboy.instance.json +11845 -6590
  78. package/common/pipboy.js +51 -62
  79. package/common/pokemon.instance.json +4300 -2285
  80. package/common/pokemon.js +8 -21
  81. package/common/pos.js +16 -14
  82. package/common/pressure.instance.json +2325 -1340
  83. package/common/pressure.js +5 -9
  84. package/common/properties.instance.json +148 -88
  85. package/common/properties.js +149 -160
  86. package/common/punctuation.js +16 -8
  87. package/common/reports.instance.json +1019 -551
  88. package/common/reports.js +77 -101
  89. package/common/reports.test.json +15623 -10458
  90. package/common/scorekeeper.js +19 -31
  91. package/common/sdefaults.js +17 -8
  92. package/common/sizeable.js +7 -11
  93. package/common/spock.instance.json +582 -298
  94. package/common/spock.js +6 -9
  95. package/common/stgame.js +20 -20
  96. package/common/stm.js +173 -31
  97. package/common/stm.test.json +1734 -1
  98. package/common/tell.js +15 -19
  99. package/common/temperature.instance.json +2430 -1429
  100. package/common/temperature.js +5 -9
  101. package/common/tester.js +15 -4
  102. package/common/testing.js +8 -12
  103. package/common/time.js +21 -26
  104. package/common/tokenize.js +6 -7
  105. package/common/ui.instance.json +150 -463
  106. package/common/ui.js +22 -33
  107. package/common/ui.test.json +641 -5357
  108. package/common/weight.instance.json +8034 -4503
  109. package/common/weight.js +5 -9
  110. package/common/yesno.js +6 -6
  111. package/main.js +20 -4
  112. package/package.json +37 -6
package/common/reports.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const currencyKM = require('./currency.js')
4
4
  const events = require('./events.js')
@@ -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
  }
@@ -110,7 +110,7 @@ const apiTemplate = (marker, testData) => {
110
110
  const api1 = apiTemplate('models', testData2)
111
111
  const api2 = apiTemplate('clothes', testData)
112
112
 
113
- let configStruct = {
113
+ let config = {
114
114
  name: 'reports',
115
115
  operators: [
116
116
  //"(([type]) [([(<less> ([than]))] ([amount]))])",
@@ -122,9 +122,9 @@ let configStruct = {
122
122
  "(([product]) <(<that> ([cost] ([price])))>)",
123
123
  "([answer] ([with] ([listingType|])))",
124
124
  "([show] (<the> ([property|property,properties])))",
125
- "([call] ([report|]) (rest))",
126
- "(([property]) <ascending>)",
127
- "(([property]) <descending>)",
125
+ "([call] ([report|]) (rest)*)",
126
+ // "(([property]) <ascending>)",
127
+ // "(([property]) <descending>)",
128
128
  "([describe] ([report]))",
129
129
  "([price])",
130
130
  "([quantity])",
@@ -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
  {
@@ -262,8 +262,8 @@ let configStruct = {
262
262
  ],
263
263
  },
264
264
 
265
- { id: "ascending", level: 0, bridge: "{ ...before[0], ordering: 'ascending' }" },
266
- { id: "descending", level: 0, bridge: "{ ...before[0], ordering: 'descending', modifiers: append(['ordering'], before[0].modifiers) }" },
265
+ // { id: "ascending", level: 0, bridge: "{ ...before[0], ordering: 'ascending' }" },
266
+ // { id: "descending", level: 0, bridge: "{ ...before[0], ordering: 'descending', modifiers: append(['ordering'], before[0].modifiers) }" },
267
267
 
268
268
  { id: "product", level: 0, bridge: "{ ...next(operator) }" },
269
269
  { id: "listAction", level: 0, bridge: "{ ...next(operator), what: after[0]}" },
@@ -295,10 +295,10 @@ let configStruct = {
295
295
  where: where(),
296
296
  id: "describe",
297
297
  level: 0,
298
- isA: ['verby'],
298
+ isA: ['verb'],
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
@@ -326,35 +326,39 @@ let configStruct = {
326
326
  where: where(),
327
327
  id: "call",
328
328
  level: 0,
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
329
+ bridge: "{ ...next(operator), namee: after[0], name: after[1:] }",
330
+ generatorp: async ({g, gs, context}) => `call ${await g(context.namee)} ${await gs(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
- const name = context.name.text
335
+ // const name = context.name.text
336
+ const name = context.name.map((n) => n.text).join('')
336
337
  objects.listings[name] = {...listing}
337
338
  config.addWord(`${name}`, { id: 'report', initial: `{ value: "${name}" }` })
338
339
  km('stm').api.mentioned({
340
+ context: {
339
341
  marker: "report",
340
342
  text: name,
341
343
  types: [ "report" ],
342
344
  value: id,
343
345
  word: name
344
- })
346
+ }
347
+ })
345
348
  }
346
349
  },
347
350
  ],
348
351
  hierarchy: [
352
+ ['property', 'comparable'],
349
353
  ['ascending', 'ordering'],
350
354
  ['descending', 'ordering'],
351
355
  ['property', 'theAble'],
352
356
  ['column', 'toAble'],
353
357
  ['report', 'it'],
354
358
  ['report', 'this'],
355
- ['describe', 'verby'],
356
- ['call', 'verby'],
357
- ['show', 'verby'],
359
+ ['describe', 'verb'],
360
+ ['call', 'verb'],
361
+ ['show', 'verb'],
358
362
  ['report', 'changeable'],
359
363
  ['show', 'action'],
360
364
  ['move', 'reportAction'],
@@ -375,49 +379,28 @@ let configStruct = {
375
379
  "literals": {
376
380
  "tables": [{"id": "listingType", "initial": "{ value: 'tables' }" }],
377
381
  "sentences": [{"id": "listingType", "initial": "{ value: 'sentences' }" }],
378
- //"product1": [{"id": "reportObject", "initial": "{ value: 'api1' }" }],
379
- //"api2": [{"id": "reportObject", "initial": "{ value: 'api2' }" }],
380
- //" ([0-9]+)": [{"id": "amount", "initial": "{ value: int(group[0]) }" }],
381
382
  }
382
383
  },
383
384
 
384
385
  priorities: [
385
386
  { "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
387
  ],
393
388
  generators: [
394
389
  {
395
390
  notes: 'paraphrase show',
396
391
  where: where(),
397
392
  match: ({context, objects}) => context.marker == 'show' && context.paraphrase,
398
- apply: ({gs, gsp, gp, e, apis, objects, context}) => {
393
+ apply: async ({gs, gp, e, apis, objects, context}) => {
399
394
  if (context.report) {
400
- return `show ${gp(context.report)}`
395
+ return `show ${await gp(context.report)}`
401
396
  } else {
402
- const report = e(context.on)
397
+ const report = await e(context.on)
403
398
  const id = report.value.value
404
399
  const listing = objects.listings[id]
405
- return `the properties being shown are ${gs(listing.columns, ', ', ' and ')}`
400
+ return `the properties being shown are ${await gs(listing.columns, ', ', ' and ')}`
406
401
  }
407
402
  }
408
403
  },
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
404
  {
422
405
  where: where(),
423
406
  match: ({context}) => context.marker == 'product' && !context.isInstance,
@@ -426,12 +409,12 @@ let configStruct = {
426
409
  {
427
410
  where: where(),
428
411
  match: ({context}) => context.marker == 'listAction' && context.paraphrase,
429
- apply: ({g, context}) => `list ${g(context.what)}`
412
+ apply: async ({g, context}) => `list ${await g(context.what)}`
430
413
  },
431
414
  {
432
415
  notes: 'show the results as a sentence',
433
416
  where: where(),
434
- match: ({context, objects, apis}) => {
417
+ match: ({context, objects}) => {
435
418
  if (!(context.marker == 'listAction' && context.isResponse)) {
436
419
  return false
437
420
  }
@@ -439,15 +422,15 @@ let configStruct = {
439
422
  return true
440
423
  }
441
424
  },
442
- apply: ({g, gs, context, objects}) => {
425
+ apply: async ({g, gs, context, objects}) => {
443
426
  const listing = objects.listings[context.id]
444
- return `the ${g(listing.api)} are ${gs(context.listing, ' ', ' and ')}`
427
+ return `the ${await g(listing.api)} are ${await gs(context.listing, ' ', ' and ')}`
445
428
  }
446
429
  },
447
430
  {
448
431
  notes: 'show the results as a table',
449
432
  where: where(),
450
- match: ({context, objects, apis}) => {
433
+ match: ({context, objects}) => {
451
434
  if (!(context.marker == 'listAction' && context.isResponse && !context.paraphrase)) {
452
435
  return false
453
436
  }
@@ -455,7 +438,7 @@ let configStruct = {
455
438
  return true
456
439
  }
457
440
  },
458
- apply: ({g, gs, objects, context, e, kms, apis}) => {
441
+ apply: async ({objects, context, e, kms}) => {
459
442
  let report = '';
460
443
  const products = context.listing
461
444
  const columns = objects.listings[context.id].columns
@@ -463,21 +446,21 @@ let configStruct = {
463
446
  kms.stm.api.setVariable('price', { marker: 'price', value: 23 })
464
447
  kms.stm.api.setVariable('quantity', { marker: 'quantity', value: 3 })
465
448
  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
449
+ r1 = toEValue(await e(c1));
450
+ r2 = await e({ marker: 'supplier', value: 'supplier' })
469
451
  }
470
- const data = products.map( (product) => {
452
+ const data = []
453
+ for (const product of products) {
471
454
  const row = []
472
455
  for (let p of Object.keys(product)) {
473
456
  kms.stm.api.setVariable(p, { marker: p, value: product[p] })
474
457
  }
475
458
  for (let property of columns) {
476
- const value = toEValue(e({ marker: property, value: property }));
459
+ const value = toEValue(await e({ marker: property, value: property }));
477
460
  row.push(value)
478
461
  }
479
- return row
480
- });
462
+ data.push(row)
463
+ };
481
464
  report += table([columns].concat(data))
482
465
  return report
483
466
  }
@@ -485,12 +468,12 @@ let configStruct = {
485
468
  {
486
469
  where: where(),
487
470
  match: ({context}) => context.marker == 'answer' && context.paraphrase,
488
- apply: ({g, context}) => `answer with ${context.type}`
471
+ apply: ({context}) => `answer with ${context.type}`
489
472
  },
490
473
  {
491
474
  where: where(),
492
475
  match: ({context}) => context.marker == 'answer' && !context.paraphrase,
493
- apply: ({g, context}) => `answering with ${context.type}`
476
+ apply: ({context}) => `answering with ${context.type}`
494
477
  },
495
478
  ],
496
479
 
@@ -499,13 +482,13 @@ let configStruct = {
499
482
  where: where(),
500
483
  notes: 'handle show semantic',
501
484
  match: ({context}) => context.marker == 'show',
502
- apply: ({context, e, km, kms, apis, insert, config, objects}) => {
485
+ apply: async ({context, e, km, kms, apis, insert, config, objects}) => {
503
486
  if (context.report) {
504
487
  const values = propertyToArray(context.report)
505
488
  const responses = []
506
489
  for (let value of values) {
507
490
  if (!value.value || value.pullFromContext) {
508
- value = e(value)
491
+ value = await e(value)
509
492
  }
510
493
  let id = value.value
511
494
  if (value.evalue) {
@@ -528,7 +511,7 @@ let configStruct = {
528
511
  }
529
512
  context.isResponse = true
530
513
  } else {
531
- const report = e(context.on)
514
+ const report = await e(context.on)
532
515
  const id = report.value.value
533
516
  const listing = objects.listings[id]
534
517
  const values = propertyToArray(context.properties)
@@ -551,11 +534,11 @@ let configStruct = {
551
534
  notes: 'get the report data',
552
535
  where: where(),
553
536
  match: ({context}) => context.marker == 'listAction',
554
- apply: ({context, e, objects, apis, km, config}) => {
537
+ apply: async ({context, e, objects, apis, km, config}) => {
555
538
  //const name = '***current***'
556
539
  if (context.api) {
557
540
  // id = newReport({km, objects})
558
- const report = e({ marker: 'report', pullFromContext: true })
541
+ const report = await e({ marker: 'report', pullFromContext: true })
559
542
  const id = report.value.value
560
543
  const listing = objects.listings[id]
561
544
  listing.api = context.api
@@ -563,7 +546,7 @@ let configStruct = {
563
546
  context.id = id
564
547
  context.listing = apis[listing.api].getAllProducts(listing)
565
548
  } else {
566
- const report = e({ marker: 'report', pullFromContext: true })
549
+ const report = await e({ marker: 'report', pullFromContext: true })
567
550
  const id = report.evalue.value
568
551
  const listing = objects.listings[id]
569
552
  const api = apis[listing.api]
@@ -573,20 +556,20 @@ let configStruct = {
573
556
  context.isResponse = true
574
557
  },
575
558
  },
576
- [
577
- ({context}) => context.marker == 'answer',
578
- ({e, context, objects, kms, insert}) => {
579
- const report = e({ marker: 'report', pullFromContext: true })
559
+ {
560
+ match: ({context}) => context.marker == 'answer',
561
+ apply: async ({e, context, objects, kms, insert}) => {
562
+ const report = await e({ marker: 'report', pullFromContext: true })
580
563
  const id = report.value.value
581
564
  const listing = objects.listings[id]
582
565
  listing.type = context.type
583
566
  kms.events.api.happens(insert, { marker: "changes", level: 1, changeable: { marker: 'report', pullFromContext: true } })
584
567
  }
585
- ],
568
+ },
586
569
  ],
587
570
  };
588
571
 
589
- const initializeApi = (config, api, km) => {
572
+ const initializeApi = (config, api) => {
590
573
  const type = api.getName();
591
574
  config.addWord(type, {"id": "product", "initial": "{ value: '" + type + `', api: '${type}'}` })
592
575
  /*
@@ -604,18 +587,10 @@ const initializeApi = (config, api, km) => {
604
587
  // config.addWord(type, {"id": "report", "initial": `${open} value: '${type}' ${close}` })
605
588
  }
606
589
 
607
- const createConfig = () => {
608
- const config = new Config(configStruct, module)
609
- config.stop_auto_rebuild()
610
- config.add(currencyKM(), helpKM(), math(), events())
611
- config.multiApi = initializeApi
612
- // mode this to non-module init only
613
- config.initializer(({config, objects, km, isModule}) => {
590
+ const initializer = async ({config, objects, km, kms, isModule}) => {
614
591
  if (!isModule) {
615
- km('reports').addAPI(api1)
616
- km('reports').addAPI(api2)
617
- // config.addAPI(api1)
618
- // config.addAPI(api2)
592
+ await kms.reports.addAPI(api1)
593
+ await kms.reports.addAPI(api2)
619
594
  }
620
595
  objects.tempReportId = 0
621
596
  objects.listings = {
@@ -624,20 +599,21 @@ const createConfig = () => {
624
599
  if (!isModule) {
625
600
  objects.listings[id].api = 'clothes'
626
601
  }
627
- })
628
- config.restart_auto_rebuild()
629
- return config
630
- }
602
+ }
631
603
 
632
604
  knowledgeModule({
605
+ config,
606
+ includes: [currencyKM, helpKM, math, events],
607
+ multiApiInitializer: initializeApi,
608
+ initializer,
609
+
633
610
  module,
634
611
  description: 'this module is for getting info about a concept with properties',
635
- createConfig,
636
612
  test: {
637
613
  name: './reports.test.json',
638
614
  contents: reports_tests,
639
615
  checks: {
640
- context: defaultContextCheck,
616
+ context: defaultContextCheck(),
641
617
  },
642
618
  },
643
619
  template: {