tpmkms_4wp 9.5.1-beta.9 → 9.6.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 (87) hide show
  1. package/common/asking.js +12 -4
  2. package/common/avatar.test.json +1001 -860
  3. package/common/can.instance.json +2162 -5
  4. package/common/can.js +101 -35
  5. package/common/can.test.json +51307 -0
  6. package/common/colors.instance.json +2 -30
  7. package/common/comparable.instance.json +1 -1
  8. package/common/concept.js +25 -27
  9. package/common/concept.test.json +142 -120
  10. package/common/conjunction.test.json +32 -42
  11. package/common/crew.instance.json +163 -113
  12. package/common/dateTimeSelectors.instance.json +2 -2
  13. package/common/dateTimeSelectors.js +3 -3
  14. package/common/dateTimeSelectors.test.json +76935 -35739
  15. package/common/dates.instance.json +0 -84
  16. package/common/dates.test.json +284 -287
  17. package/common/dialogues.js +31 -112
  18. package/common/dialogues.test.json +1171 -996
  19. package/common/dimension.instance.json +21374 -562
  20. package/common/dimension.js +145 -51
  21. package/common/dimension.test.json +8753 -3495
  22. package/common/drone.instance.json +23712 -0
  23. package/common/drone.js +448 -0
  24. package/common/drone.test.json +66665 -0
  25. package/common/edible.instance.json +9 -65
  26. package/common/emotions.instance.json +47 -70
  27. package/common/errors.js +3 -3
  28. package/common/fastfood.instance.json +758 -266
  29. package/common/fastfood.js +7 -7
  30. package/common/fastfood.test.json +6970 -6829
  31. package/common/gdefaults.js +58 -13
  32. package/common/help.js +9 -9
  33. package/common/help.test.json +65 -11
  34. package/common/helpers/dialogues.js +6 -1
  35. package/common/helpers/properties.js +36 -16
  36. package/common/helpers.js +32 -2
  37. package/common/hierarchy.js +3 -1
  38. package/common/kirk.test.json +600 -424
  39. package/common/latin.instance.json +10 -10
  40. package/common/latin.js +5 -5
  41. package/common/length.instance.json +27611 -2889
  42. package/common/length.js +6 -1
  43. package/common/length.test.json +45315 -3925
  44. package/common/math.instance.json +1 -1
  45. package/common/menus.instance.json +4 -7
  46. package/common/menus.js +1 -8
  47. package/common/meta.js +1 -0
  48. package/common/nameable.js +13 -6
  49. package/common/nameable.test.json +436 -0
  50. package/common/numbers.js +1 -1
  51. package/common/ordering.instance.json +4 -2
  52. package/common/ordering.test.json +104 -174
  53. package/common/people.instance.json +60 -315
  54. package/common/pipboy.instance.json +1 -57
  55. package/common/pokemon.instance.json +5 -5
  56. package/common/pressure.instance.json +3959 -1990
  57. package/common/pressure.test.json +433 -477
  58. package/common/properties.instance.json +5 -16
  59. package/common/properties.js +3 -3
  60. package/common/properties.test.json +9565 -6951
  61. package/common/rates.instance.json +59 -0
  62. package/common/rates.js +97 -0
  63. package/common/rates.test.json +27702 -0
  64. package/common/reminders.js +2 -2
  65. package/common/reminders.test.json +64635 -25787
  66. package/common/reports.instance.json +2 -2
  67. package/common/spock.test.json +606 -430
  68. package/common/stm.js +13 -2
  69. package/common/temperature.instance.json +3658 -1689
  70. package/common/temperature.test.json +433 -477
  71. package/common/time.instance.json +24762 -0
  72. package/common/time.js +135 -139
  73. package/common/time.test.json +31876 -3757
  74. package/common/ui.instance.json +2 -5
  75. package/common/ui.js +1 -8
  76. package/common/weight.instance.json +10359 -4077
  77. package/common/weight.test.json +2601 -2263
  78. package/common/words.instance.json +9 -0
  79. package/common/words.js +53 -0
  80. package/common/words.test.json +2 -0
  81. package/common/wp.instance.json +330 -58
  82. package/common/wp.js +4 -0
  83. package/common/wp.test.json +7385 -6906
  84. package/main.js +4 -2
  85. package/package.json +16 -5
  86. package/common/listener.js +0 -50
  87. 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
+ })