ekms 9.6.0-beta.15 → 9.6.0-beta.16

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.
@@ -63,7 +63,7 @@
63
63
  ],
64
64
  "bridges": [
65
65
  {
66
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:198",
66
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:201",
67
67
  "id": "preferredUnits",
68
68
  "isA": [
69
69
  "verb"
@@ -72,7 +72,7 @@
72
72
  "semantic": "async ({context, e, api, toArray, resolveResponse}) => {\n const preferredUnits = api.getPreferredUnits(context.quantity)\n if (!preferredUnits) {\n return\n }\n const from = context.quantity;\n const value = await e({ marker: 'convertToUnits', from, to: preferredUnits })\n resolveResponse(context, value.evalue)\n }"
73
73
  },
74
74
  {
75
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:213",
75
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:216",
76
76
  "id": "useUnits",
77
77
  "isA": [
78
78
  "verb"
@@ -81,11 +81,11 @@
81
81
  "semantic": "({context, api}) => {\n api.setPreferredUnits(context.units)\n }"
82
82
  },
83
83
  {
84
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:222",
84
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:225",
85
85
  "id": "dimension"
86
86
  },
87
87
  {
88
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:226",
88
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:229",
89
89
  "id": "quantity",
90
90
  "isA": [
91
91
  "noun"
@@ -106,7 +106,7 @@
106
106
  "id": "amount"
107
107
  },
108
108
  {
109
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:241",
109
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:244",
110
110
  "id": "degree",
111
111
  "words": [
112
112
  {
@@ -126,7 +126,7 @@
126
126
  "bridge": "{ marker: next(operator('quantity')), dead: true, unit: after[0], amount: before[0] }"
127
127
  },
128
128
  {
129
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:255",
129
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:258",
130
130
  "id": "convertToUnits",
131
131
  "bridge": "{ ...next(operator), from: before[0], to: after[0] }",
132
132
  "isA": [
@@ -22731,12 +22731,12 @@
22731
22731
  ],
22732
22732
  "generators": [
22733
22733
  {
22734
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:191"
22734
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:194"
22735
22735
  }
22736
22736
  ],
22737
22737
  "bridges": [
22738
22738
  {
22739
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:198",
22739
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:201",
22740
22740
  "id": "preferredUnits",
22741
22741
  "isA": [
22742
22742
  "verb"
@@ -22744,7 +22744,7 @@
22744
22744
  "bridge": "{ ...next(operator), quantity: after[0], operator: operator, interpolate: [{ property: 'operator' }, { property: 'quantity' }] }"
22745
22745
  },
22746
22746
  {
22747
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:213",
22747
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:216",
22748
22748
  "id": "useUnits",
22749
22749
  "isA": [
22750
22750
  "verb"
@@ -22752,11 +22752,11 @@
22752
22752
  "bridge": "{ ...next(operator), units: after[0], operator: operator, interpolate: [{ property: 'operator' }, { property: 'units' }] }"
22753
22753
  },
22754
22754
  {
22755
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:222",
22755
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:225",
22756
22756
  "id": "dimension"
22757
22757
  },
22758
22758
  {
22759
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:226",
22759
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:229",
22760
22760
  "id": "quantity",
22761
22761
  "isA": [
22762
22762
  "noun"
@@ -22775,7 +22775,7 @@
22775
22775
  "id": "amount"
22776
22776
  },
22777
22777
  {
22778
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:241",
22778
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:244",
22779
22779
  "id": "degree",
22780
22780
  "words": [
22781
22781
  {
@@ -22794,7 +22794,7 @@
22794
22794
  "bridge": "{ marker: next(operator('quantity')), dead: true, unit: after[0], amount: before[0] }"
22795
22795
  },
22796
22796
  {
22797
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:255",
22797
+ "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:258",
22798
22798
  "id": "convertToUnits",
22799
22799
  "bridge": "{ ...next(operator), from: before[0], to: after[0] }",
22800
22800
  "isA": [
@@ -35,26 +35,29 @@ class API {
35
35
  initialize({ config, objects }) {
36
36
  this._config = config
37
37
  this._objects = objects
38
- objects.preferredUnits = []
39
38
  }
40
39
 
41
40
  getPreferredUnits(quantity) {
42
- for (const unit of this._objects.preferredUnits) {
43
- if (quantity.unit.marker == 'unitPerUnit') {
44
- if (quantity.unit.numerator.dimension == unit.numerator.dimension &&
45
- quantity.unit.denominator.dimension == unit.denominator.dimension) {
46
- return unit
41
+ const preferredUnits = this.args.mentions({
42
+ context: { marker: 'unit' },
43
+ condition: (unit) => {
44
+ if (quantity.unit.marker == 'unitPerUnit') {
45
+ if (quantity.unit.numerator.dimension == unit.numerator.dimension &&
46
+ quantity.unit.denominator.dimension == unit.denominator.dimension) {
47
+ return true
48
+ }
49
+ } else if (unit.dimension) {
50
+ if (unit.dimension == quantity.unit.dimension) {
51
+ return true
52
+ }
47
53
  }
48
- } else if (unit.dimension) {
49
- if (unit.dimension == quantity.unit.dimension) {
50
- return unit
51
- }
52
- }
53
- }
54
+ },
55
+ })
56
+ return preferredUnits
54
57
  }
55
58
 
56
59
  setPreferredUnits(units) {
57
- this._objects.preferredUnits.unshift(units)
60
+ this.args.mentioned(units)
58
61
  }
59
62
 
60
63
  setMeasurementSystem(measurementSystem) {
@@ -336,8 +339,8 @@ knowledgeModule({
336
339
  checks: {
337
340
  objects: [
338
341
  { km: 'properties' },
342
+ { km: 'stm' },
339
343
  { path: ['measurementSystem'] },
340
- { path: ['preferredUnits'] },
341
344
  ],
342
345
  context: [
343
346
  defaultContextCheck({ marker: 'metric_system', exported: true }),
@@ -180319,6 +180319,7 @@
180319
180319
  "value": "second",
180320
180320
  "word": "second"
180321
180321
  },
180322
+ "fromSTM": true,
180322
180323
  "interpolate": [
180323
180324
  {
180324
180325
  "context": {
@@ -180359,10 +180360,14 @@
180359
180360
  "value": "inch",
180360
180361
  "word": "inches"
180361
180362
  },
180363
+ "pullFromContext": false,
180362
180364
  "range": {
180363
180365
  "end": 20,
180364
180366
  "start": 4
180365
180367
  },
180368
+ "stm": {
180369
+ "id": 2
180370
+ },
180366
180371
  "text": "inches per second",
180367
180372
  "types": [
180368
180373
  "unitPerUnit"
@@ -180435,6 +180440,7 @@
180435
180440
  "value": "second",
180436
180441
  "word": "second"
180437
180442
  },
180443
+ "fromSTM": true,
180438
180444
  "interpolate": [
180439
180445
  {
180440
180446
  "context": {
@@ -180475,10 +180481,14 @@
180475
180481
  "value": "inch",
180476
180482
  "word": "inches"
180477
180483
  },
180484
+ "pullFromContext": false,
180478
180485
  "range": {
180479
180486
  "end": 20,
180480
180487
  "start": 4
180481
180488
  },
180489
+ "stm": {
180490
+ "id": 2
180491
+ },
180482
180492
  "text": "inches per second",
180483
180493
  "types": [
180484
180494
  "unitPerUnit"
@@ -180831,75 +180841,7 @@
180831
180841
  }
180832
180842
  },
180833
180843
  "dimension2": {
180834
- "km": "dimension2",
180835
- "preferredUnits": [
180836
- {
180837
- "dead": true,
180838
- "default": true,
180839
- "denominator": {
180840
- "dimension": "time",
180841
- "level": 0,
180842
- "marker": "second",
180843
- "number": "one",
180844
- "range": {
180845
- "end": 20,
180846
- "start": 15
180847
- },
180848
- "text": "second",
180849
- "value": "second",
180850
- "word": "second"
180851
- },
180852
- "interpolate": [
180853
- {
180854
- "context": {
180855
- "number": "many"
180856
- },
180857
- "property": "numerator"
180858
- },
180859
- {
180860
- "context": {
180861
- "default": true,
180862
- "level": 0,
180863
- "marker": "unitPerUnit",
180864
- "range": {
180865
- "end": 13,
180866
- "start": 11
180867
- },
180868
- "text": "per",
180869
- "word": "per"
180870
- }
180871
- },
180872
- {
180873
- "property": "denominator"
180874
- }
180875
- ],
180876
- "level": 0,
180877
- "marker": "unitPerUnit",
180878
- "numerator": {
180879
- "dead": true,
180880
- "dimension": "length",
180881
- "level": 0,
180882
- "marker": "inch",
180883
- "number": "many",
180884
- "range": {
180885
- "end": 9,
180886
- "start": 4
180887
- },
180888
- "text": "inches",
180889
- "value": "inch",
180890
- "word": "inches"
180891
- },
180892
- "range": {
180893
- "end": 20,
180894
- "start": 4
180895
- },
180896
- "text": "inches per second",
180897
- "types": [
180898
- "unitPerUnit"
180899
- ],
180900
- "word": "per"
180901
- }
180902
- ]
180844
+ "km": "dimension2"
180903
180845
  },
180904
180846
  "drone1": {
180905
180847
  "current": {
@@ -188651,7 +188593,7 @@
188651
188593
  "marker": "meter",
188652
188594
  "pullFromContext": false,
188653
188595
  "stm": {
188654
- "id": 2
188596
+ "id": 3
188655
188597
  },
188656
188598
  "value": {
188657
188599
  "dead": true,
@@ -188671,6 +188613,77 @@
188671
188613
  "word": "number"
188672
188614
  }
188673
188615
  },
188616
+ {
188617
+ "dead": true,
188618
+ "default": true,
188619
+ "denominator": {
188620
+ "dimension": "time",
188621
+ "level": 0,
188622
+ "marker": "second",
188623
+ "number": "one",
188624
+ "range": {
188625
+ "end": 20,
188626
+ "start": 15
188627
+ },
188628
+ "text": "second",
188629
+ "value": "second",
188630
+ "word": "second"
188631
+ },
188632
+ "fromSTM": true,
188633
+ "interpolate": [
188634
+ {
188635
+ "context": {
188636
+ "number": "many"
188637
+ },
188638
+ "property": "numerator"
188639
+ },
188640
+ {
188641
+ "context": {
188642
+ "default": true,
188643
+ "level": 0,
188644
+ "marker": "unitPerUnit",
188645
+ "range": {
188646
+ "end": 13,
188647
+ "start": 11
188648
+ },
188649
+ "text": "per",
188650
+ "word": "per"
188651
+ }
188652
+ },
188653
+ {
188654
+ "property": "denominator"
188655
+ }
188656
+ ],
188657
+ "level": 0,
188658
+ "marker": "unitPerUnit",
188659
+ "numerator": {
188660
+ "dead": true,
188661
+ "dimension": "length",
188662
+ "level": 0,
188663
+ "marker": "inch",
188664
+ "number": "many",
188665
+ "range": {
188666
+ "end": 9,
188667
+ "start": 4
188668
+ },
188669
+ "text": "inches",
188670
+ "value": "inch",
188671
+ "word": "inches"
188672
+ },
188673
+ "pullFromContext": false,
188674
+ "range": {
188675
+ "end": 20,
188676
+ "start": 4
188677
+ },
188678
+ "stm": {
188679
+ "id": 2
188680
+ },
188681
+ "text": "inches per second",
188682
+ "types": [
188683
+ "unitPerUnit"
188684
+ ],
188685
+ "word": "per"
188686
+ },
188674
188687
  {
188675
188688
  "description": "start",
188676
188689
  "fromSTM": true,
@@ -188774,6 +188787,7 @@
188774
188787
  "value": "second",
188775
188788
  "word": "second"
188776
188789
  },
188790
+ "fromSTM": true,
188777
188791
  "interpolate": [
188778
188792
  {
188779
188793
  "context": {
@@ -188814,10 +188828,14 @@
188814
188828
  "value": "inch",
188815
188829
  "word": "inches"
188816
188830
  },
188831
+ "pullFromContext": false,
188817
188832
  "range": {
188818
188833
  "end": 20,
188819
188834
  "start": 4
188820
188835
  },
188836
+ "stm": {
188837
+ "id": 2
188838
+ },
188821
188839
  "text": "inches per second",
188822
188840
  "types": [
188823
188841
  "unitPerUnit"
@@ -188980,6 +188998,7 @@
188980
188998
  "value": "second",
188981
188999
  "word": "second"
188982
189000
  },
189001
+ "fromSTM": true,
188983
189002
  "interpolate": [
188984
189003
  {
188985
189004
  "context": {
@@ -189020,10 +189039,14 @@
189020
189039
  "value": "inch",
189021
189040
  "word": "inches"
189022
189041
  },
189042
+ "pullFromContext": false,
189023
189043
  "range": {
189024
189044
  "end": 20,
189025
189045
  "start": 4
189026
189046
  },
189047
+ "stm": {
189048
+ "id": 2
189049
+ },
189027
189050
  "text": "inches per second",
189028
189051
  "types": [
189029
189052
  "unitPerUnit"
package/common/length.js CHANGED
@@ -60,6 +60,7 @@ knowledgeModule({
60
60
  checks: {
61
61
  objects: [
62
62
  { km: 'dimension' },
63
+ { km: 'stm' },
63
64
  ],
64
65
  context: [defaultContextCheck()],
65
66
  }