tpmkms_4wp 9.5.1 → 9.6.0-beta.0

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 (135) hide show
  1. package/common/animals.instance.json +151 -61
  2. package/common/animals.js +3 -5
  3. package/common/asking.js +116 -106
  4. package/common/avatar.test.json +1001 -860
  5. package/common/can.instance.json +2194 -0
  6. package/common/can.js +251 -0
  7. package/common/can.test.json +51307 -0
  8. package/common/characters.js +5 -5
  9. package/common/colors.instance.json +152 -12
  10. package/common/colors.js +3 -6
  11. package/common/comparable.instance.json +33 -3
  12. package/common/comparable.js +3 -6
  13. package/common/concept.js +25 -27
  14. package/common/concept.test.json +180 -144
  15. package/common/conjunction.js +13 -5
  16. package/common/conjunction.test.json +32 -42
  17. package/common/crew.instance.json +433 -173
  18. package/common/crew.js +4 -7
  19. package/common/crew.test.json +4148 -3324
  20. package/common/currency.js +1 -1
  21. package/common/dateTimeSelectors.instance.json +2 -2
  22. package/common/dateTimeSelectors.js +6 -9
  23. package/common/dateTimeSelectors.test.json +76935 -35739
  24. package/common/dates.instance.json +53 -3
  25. package/common/dates.js +3 -6
  26. package/common/dates.test.json +284 -287
  27. package/common/dialogues.js +43 -122
  28. package/common/dialogues.test.json +1248 -1152
  29. package/common/dimension.instance.json +21493 -561
  30. package/common/dimension.js +150 -55
  31. package/common/dimension.test.json +10979 -4625
  32. package/common/drone.instance.json +24709 -0
  33. package/common/drone.js +662 -0
  34. package/common/drone.test.json +30522 -0
  35. package/common/drone_v1.instance.json +24703 -0
  36. package/common/drone_v1.js +596 -0
  37. package/common/drone_v1.test.json +115538 -0
  38. package/common/edible.instance.json +388 -32
  39. package/common/edible.js +3 -5
  40. package/common/emotions.instance.json +85 -76
  41. package/common/emotions.js +4 -7
  42. package/common/emotions.test.json +242 -174
  43. package/common/english_helpers.js +336 -0
  44. package/common/errors.js +6 -6
  45. package/common/evaluate.js +2 -2
  46. package/common/events.js +8 -8
  47. package/common/fastfood.instance.json +1071 -393
  48. package/common/fastfood.js +14 -16
  49. package/common/fastfood.test.json +6970 -6829
  50. package/common/formulas.instance.json +11 -1
  51. package/common/formulas.js +3 -2
  52. package/common/gdefaults.js +111 -17
  53. package/common/help.js +12 -12
  54. package/common/help.test.json +65 -11
  55. package/common/helpers/concept.js +1 -1
  56. package/common/helpers/conjunction.js +54 -44
  57. package/common/helpers/dateTimeSelectors.js +2 -2
  58. package/common/helpers/dialogues.js +10 -2
  59. package/common/helpers/formulas.js +13 -11
  60. package/common/helpers/menus.js +12 -12
  61. package/common/helpers/meta.js +9 -9
  62. package/common/helpers/properties.js +186 -64
  63. package/common/helpers.js +167 -48
  64. package/common/hierarchy.js +12 -10
  65. package/common/kirk.instance.json +11 -1
  66. package/common/kirk.js +4 -6
  67. package/common/kirk.test.json +600 -424
  68. package/common/latin.instance.json +12 -12
  69. package/common/latin.js +12 -14
  70. package/common/length.instance.json +34660 -3158
  71. package/common/length.js +11 -6
  72. package/common/length.test.json +54357 -2557
  73. package/common/math.instance.json +39 -29
  74. package/common/math.js +49 -47
  75. package/common/menus.instance.json +77 -10
  76. package/common/menus.js +4 -13
  77. package/common/meta.js +80 -65
  78. package/common/nameable.js +36 -22
  79. package/common/nameable.test.json +436 -0
  80. package/common/numbers.js +1 -1
  81. package/common/ordering.instance.json +107 -19
  82. package/common/ordering.js +4 -6
  83. package/common/ordering.test.json +835 -417
  84. package/common/people.instance.json +176 -348
  85. package/common/people.js +9 -9
  86. package/common/people.test.json +4135 -3606
  87. package/common/pipboy.instance.json +187 -17
  88. package/common/pipboy.js +4 -4
  89. package/common/pokemon.instance.json +143 -13
  90. package/common/pokemon.js +4 -6
  91. package/common/pressure.instance.json +3610 -1601
  92. package/common/pressure.js +3 -5
  93. package/common/pressure.test.json +433 -477
  94. package/common/properties.instance.json +16 -17
  95. package/common/properties.js +32 -13
  96. package/common/properties.test.json +9565 -6951
  97. package/common/rates.instance.json +59 -0
  98. package/common/rates.js +95 -0
  99. package/common/rates.test.json +27702 -0
  100. package/common/reminders.instance.json +4 -4
  101. package/common/reminders.js +8 -11
  102. package/common/reminders.test.json +64635 -25787
  103. package/common/reports.instance.json +23 -3
  104. package/common/reports.js +21 -21
  105. package/common/scorekeeper.js +9 -12
  106. package/common/sdefaults.js +22 -2
  107. package/common/spock.instance.json +11 -1
  108. package/common/spock.js +4 -7
  109. package/common/spock.test.json +606 -430
  110. package/common/stgame.js +1 -1
  111. package/common/stm.js +41 -24
  112. package/common/tell.js +1 -1
  113. package/common/temperature.instance.json +3163 -1154
  114. package/common/temperature.js +3 -5
  115. package/common/temperature.test.json +433 -477
  116. package/common/tester.js +3 -3
  117. package/common/time.instance.json +24852 -0
  118. package/common/time.js +138 -141
  119. package/common/time.test.json +31876 -3757
  120. package/common/tokenize.js +5 -2
  121. package/common/ui.instance.json +12 -5
  122. package/common/ui.js +4 -13
  123. package/common/weight.instance.json +10501 -4099
  124. package/common/weight.js +3 -5
  125. package/common/weight.test.json +2601 -2263
  126. package/common/words.instance.json +9 -0
  127. package/common/words.js +50 -0
  128. package/common/words.test.json +2 -0
  129. package/common/wp.instance.json +548 -8
  130. package/common/wp.js +10 -8
  131. package/common/wp.test.json +7385 -6906
  132. package/main.js +6 -2
  133. package/package.json +25 -6
  134. package/common/listener.js +0 -50
  135. 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,95 @@
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 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
+ instance,
94
+ template,
95
+ })