tpmkms_4wp 9.5.1-beta.3 → 9.5.1-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 (114) hide show
  1. package/common/animals.instance.json +21 -61
  2. package/common/asking.js +112 -102
  3. package/common/avatar.test.json +1001 -860
  4. package/common/can.instance.json +2174 -0
  5. package/common/can.js +254 -0
  6. package/common/can.test.json +51307 -0
  7. package/common/characters.js +3 -3
  8. package/common/colors.instance.json +10 -10
  9. package/common/comparable.instance.json +2 -2
  10. package/common/concept.js +19 -22
  11. package/common/concept.test.json +54 -40
  12. package/common/conjunction.js +13 -5
  13. package/common/conjunction.test.json +32 -42
  14. package/common/crew.instance.json +164 -150
  15. package/common/crew.js +1 -1
  16. package/common/currency.js +1 -1
  17. package/common/dateTimeSelectors.instance.json +2 -2
  18. package/common/dateTimeSelectors.js +3 -3
  19. package/common/dateTimeSelectors.test.json +76935 -35739
  20. package/common/dates.instance.json +3 -3
  21. package/common/dates.test.json +284 -287
  22. package/common/dialogues.js +41 -119
  23. package/common/dialogues.test.json +1171 -996
  24. package/common/dimension.instance.json +21374 -562
  25. package/common/dimension.js +145 -51
  26. package/common/dimension.test.json +8753 -3495
  27. package/common/drone.instance.json +23710 -0
  28. package/common/drone.js +429 -0
  29. package/common/drone.test.json +61113 -0
  30. package/common/edible.instance.json +23 -95
  31. package/common/emotions.instance.json +53 -80
  32. package/common/emotions.js +1 -1
  33. package/common/english_helpers.js +277 -67
  34. package/common/fastfood.instance.json +180 -372
  35. package/common/fastfood.js +4 -4
  36. package/common/fastfood.test.json +6970 -6829
  37. package/common/formulas.instance.json +1 -1
  38. package/common/gdefaults.js +94 -17
  39. package/common/help.js +11 -11
  40. package/common/help.test.json +65 -11
  41. package/common/helpers/concept.js +1 -1
  42. package/common/helpers/conjunction.js +54 -44
  43. package/common/helpers/dateTimeSelectors.js +2 -2
  44. package/common/helpers/dialogues.js +7 -2
  45. package/common/helpers/formulas.js +13 -11
  46. package/common/helpers/menus.js +12 -12
  47. package/common/helpers/meta.js +8 -8
  48. package/common/helpers/properties.js +104 -23
  49. package/common/helpers.js +114 -48
  50. package/common/hierarchy.js +6 -4
  51. package/common/kirk.instance.json +1 -1
  52. package/common/kirk.test.json +600 -424
  53. package/common/latin.instance.json +10 -10
  54. package/common/latin.js +5 -5
  55. package/common/length.instance.json +27612 -2890
  56. package/common/length.js +6 -1
  57. package/common/length.test.json +45315 -3925
  58. package/common/math.instance.json +20 -20
  59. package/common/math.js +45 -44
  60. package/common/menus.instance.json +6 -9
  61. package/common/menus.js +2 -9
  62. package/common/meta.js +50 -33
  63. package/common/nameable.js +13 -6
  64. package/common/nameable.test.json +436 -0
  65. package/common/numbers.js +1 -1
  66. package/common/ordering.instance.json +20 -30
  67. package/common/ordering.js +1 -1
  68. package/common/ordering.test.json +414 -426
  69. package/common/people.instance.json +82 -348
  70. package/common/people.js +1 -1
  71. package/common/people.test.json +952 -681
  72. package/common/pipboy.instance.json +16 -16
  73. package/common/pokemon.instance.json +8 -8
  74. package/common/pokemon.js +1 -1
  75. package/common/pressure.instance.json +3579 -1610
  76. package/common/pressure.test.json +433 -477
  77. package/common/properties.instance.json +6 -17
  78. package/common/properties.js +19 -6
  79. package/common/properties.test.json +8746 -6638
  80. package/common/rates.instance.json +59 -0
  81. package/common/rates.js +97 -0
  82. package/common/rates.test.json +27702 -0
  83. package/common/reminders.js +1 -1
  84. package/common/reminders.test.json +64635 -25787
  85. package/common/reports.instance.json +3 -3
  86. package/common/reports.js +18 -16
  87. package/common/scorekeeper.js +4 -4
  88. package/common/sdefaults.js +22 -2
  89. package/common/spock.instance.json +1 -1
  90. package/common/spock.test.json +606 -430
  91. package/common/stgame.js +1 -1
  92. package/common/stm.js +15 -4
  93. package/common/tell.js +1 -1
  94. package/common/temperature.instance.json +3786 -1705
  95. package/common/temperature.test.json +433 -477
  96. package/common/tester.js +3 -3
  97. package/common/time.instance.json +24762 -0
  98. package/common/time.js +137 -141
  99. package/common/time.test.json +31876 -3757
  100. package/common/tokenize.js +1 -1
  101. package/common/ui.instance.json +2 -5
  102. package/common/ui.js +1 -8
  103. package/common/weight.instance.json +10359 -4077
  104. package/common/weight.test.json +2601 -2263
  105. package/common/words.instance.json +9 -0
  106. package/common/words.js +53 -0
  107. package/common/words.test.json +2 -0
  108. package/common/wp.instance.json +336 -8
  109. package/common/wp.js +8 -4
  110. package/common/wp.test.json +7385 -6906
  111. package/main.js +4 -2
  112. package/package.json +18 -5
  113. package/common/listener.js +0 -50
  114. package/common/listener.test.json +0 -142
@@ -0,0 +1,59 @@
1
+ {
2
+ "configs": [
3
+ {
4
+ "operators": [
5
+ "((context.dimension != undefined) [unitPerUnit|per] (context.dimension != undefined))"
6
+ ],
7
+ "bridges": [
8
+ {
9
+ "id": "unitPerUnit",
10
+ "before": [
11
+ "amountOfCoordinate"
12
+ ],
13
+ "isA": [
14
+ "unit"
15
+ ],
16
+ "bridge": "{ \n ...operator, \n numerator: before[0], \n denominator: after[0],\n interpolate: [{ property: 'numerator', context: { number: 'many' } }, { context: operator }, { property: 'denominator' }] \n }",
17
+ "enhanced_associations": true
18
+ }
19
+ ],
20
+ "semantics": [
21
+ {
22
+ "match": "({context}) => context.marker == 'convertToUnits' && context.evaluate && (context.from.unit.marker == 'unitPerUnit' || context.to.marker == 'unitPerUnit')",
23
+ "apply": "async ({context, kms, e, error}) => {\n\n async function convert(fromUnits, fromAmount, toUnits) {\n let evalue;\n if (toUnits.value == fromUnits.value) {\n evalue = fromAmount\n evalue.evalue = fromAmount.value\n } else {\n const formula = kms.formulas.api.get(toUnits, [fromUnits])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: fromUnits, to: toUnits } }\n kms.stm.api.mentioned({ context: reason })\n error(reason)\n }\n kms.stm.api.setVariable(fromUnits.value, fromAmount)\n evalue = await e(formula)\n }\n return evalue\n }\n\n const evalueNumerator = await convert(context.from.unit.numerator, context.from.amount, context.to.numerator) \n const evalueDenominator = await convert(context.from.unit.denominator, 1, context.to.denominator) \n const evalue = { evalue: (evalueNumerator.evalue || evalueNumerator.value) / (evalueDenominator.evalue || evalueDenominator.evalue) }\n context.evalue = {\n paraphrase: true,\n marker: 'quantity',\n level: 1,\n unit: context.to,\n amount: { evalue, paraphrase: undefined }\n }\n }"
24
+ }
25
+ ]
26
+ }
27
+ ],
28
+ "resultss": [
29
+ {
30
+ "extraConfig": true,
31
+ "operators": [
32
+ "((context.dimension != undefined) [unitPerUnit|per] (context.dimension != undefined))"
33
+ ],
34
+ "bridges": [
35
+ {
36
+ "id": "unitPerUnit",
37
+ "before": [
38
+ "amountOfCoordinate"
39
+ ],
40
+ "isA": [
41
+ "unit"
42
+ ],
43
+ "bridge": "{ \n ...operator, \n numerator: before[0], \n denominator: after[0],\n interpolate: [{ property: 'numerator', context: { number: 'many' } }, { context: operator }, { property: 'denominator' }] \n }",
44
+ "enhanced_associations": true
45
+ }
46
+ ],
47
+ "semantics": [
48
+ {
49
+ "where": "/home/dev/code/theprogrammablemind/kms/common/rates.js:38"
50
+ }
51
+ ]
52
+ }
53
+ ],
54
+ "fragments": [],
55
+ "semantics": [],
56
+ "associations": [],
57
+ "summaries": [],
58
+ "learned_contextual_priorities": []
59
+ }
@@ -0,0 +1,97 @@
1
+ const { knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
2
+ const { defaultContextCheck } = require('./helpers')
3
+ const dimension = require('./dimension.js')
4
+ const length = require('./length.js')
5
+ const time = require('./time.js')
6
+ const rates_tests = require('./rates.test.json')
7
+ const rates_instance = require('./rates.instance.json')
8
+
9
+ /*
10
+ miles per hour
11
+
12
+ TODO 2 meters every 3 minutes
13
+ */
14
+
15
+ const template = {
16
+ configs: [
17
+ {
18
+ operators: [
19
+ // "((mile) [unitPerUnit|per] (hour))",
20
+ "((context.dimension != undefined) [unitPerUnit|per] (context.dimension != undefined))",
21
+ ],
22
+ bridges: [
23
+ {
24
+ id: 'unitPerUnit',
25
+ before: ['amountOfCoordinate'],
26
+ isA: ['unit'],
27
+ bridge: `{
28
+ ...operator,
29
+ numerator: before[0],
30
+ denominator: after[0],
31
+ interpolate: [{ property: 'numerator', context: { number: 'many' } }, { context: operator }, { property: 'denominator' }]
32
+ }`,
33
+ "enhanced_associations": true,
34
+ },
35
+ ],
36
+ semantics: [
37
+ {
38
+ where: where(),
39
+ match: ({context}) => context.marker == 'convertToUnits' && context.evaluate && (context.from.unit.marker == 'unitPerUnit' || context.to.marker == 'unitPerUnit'),
40
+ apply: async ({context, kms, e, error}) => {
41
+
42
+ async function convert(fromUnits, fromAmount, toUnits) {
43
+ let evalue;
44
+ if (toUnits.value == fromUnits.value) {
45
+ evalue = fromAmount
46
+ evalue.evalue = fromAmount.value
47
+ } else {
48
+ const formula = kms.formulas.api.get(toUnits, [fromUnits])
49
+ if (!formula) {
50
+ const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: fromUnits, to: toUnits } }
51
+ kms.stm.api.mentioned({ context: reason })
52
+ error(reason)
53
+ }
54
+ kms.stm.api.setVariable(fromUnits.value, fromAmount)
55
+ evalue = await e(formula)
56
+ }
57
+ return evalue
58
+ }
59
+
60
+ const evalueNumerator = await convert(context.from.unit.numerator, context.from.amount, context.to.numerator)
61
+ const evalueDenominator = await convert(context.from.unit.denominator, 1, context.to.denominator)
62
+ const evalue = { evalue: (evalueNumerator.evalue || evalueNumerator.value) / (evalueDenominator.evalue || evalueDenominator.evalue) }
63
+ context.evalue = {
64
+ paraphrase: true,
65
+ marker: 'quantity',
66
+ level: 1,
67
+ unit: context.to,
68
+ amount: { evalue, paraphrase: undefined }
69
+ }
70
+ },
71
+ },
72
+ ]
73
+ },
74
+ ],
75
+ }
76
+
77
+ knowledgeModule({
78
+ config: { name: 'rates' },
79
+ includes: [dimension, length, time],
80
+
81
+ module,
82
+ description: 'Length dimension',
83
+ test: {
84
+ name: './rates.test.json',
85
+ contents: rates_tests,
86
+ checks: {
87
+ context: [
88
+ defaultContextCheck({ marker: 'unitPerUnit', exported: true, extra: ['numerator', 'denominator'] }),
89
+ defaultContextCheck()
90
+ ],
91
+ }
92
+ },
93
+ template: {
94
+ template,
95
+ instance: rates_instance
96
+ }
97
+ })