tpmkms 8.0.0-beta.42 → 8.0.0-beta.43

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 (66) hide show
  1. package/common/animals.js +17 -20
  2. package/common/articles.js +6 -11
  3. package/common/avatar.js +5 -9
  4. package/common/characters.js +22 -26
  5. package/common/colors.instance.json +28 -0
  6. package/common/colors.js +4 -8
  7. package/common/comparable.js +5 -9
  8. package/common/concept.js +120 -124
  9. package/common/countable.js +5 -9
  10. package/common/crew.js +36 -41
  11. package/common/currency.js +25 -43
  12. package/common/dialogues.js +46 -49
  13. package/common/dimension.instance.json +8 -8
  14. package/common/dimension.js +7 -13
  15. package/common/edible.instance.json +112 -0
  16. package/common/edible.js +3 -8
  17. package/common/emotions.js +35 -38
  18. package/common/evaluate.js +5 -11
  19. package/common/events.js +6 -10
  20. package/common/fastfood.instance.json +401 -317
  21. package/common/fastfood.js +53 -63
  22. package/common/formulas.instance.json +10 -10
  23. package/common/formulas.js +7 -14
  24. package/common/gdefaults.js +8 -10
  25. package/common/help.js +7 -12
  26. package/common/hierarchy.js +8 -12
  27. package/common/javascript.js +7 -14
  28. package/common/kirk.js +5 -8
  29. package/common/length.js +4 -8
  30. package/common/listener.js +5 -11
  31. package/common/math.instance.json +16 -16
  32. package/common/math.js +6 -10
  33. package/common/meta.js +5 -22
  34. package/common/nameable.js +6 -13
  35. package/common/negation.js +5 -5
  36. package/common/numbers.js +5 -9
  37. package/common/ordering.instance.json +68 -0
  38. package/common/ordering.js +80 -86
  39. package/common/people.js +8 -12
  40. package/common/percentages.js +5 -9
  41. package/common/pipboy.instance.json +84 -28
  42. package/common/pipboy.js +7 -15
  43. package/common/pokemon.js +7 -20
  44. package/common/pos.js +4 -5
  45. package/common/pressure.js +4 -8
  46. package/common/properties.js +6 -12
  47. package/common/punctuation.js +5 -5
  48. package/common/reports.instance.json +1 -1
  49. package/common/reports.js +9 -14
  50. package/common/scorekeeper.js +8 -12
  51. package/common/sdefaults.js +4 -5
  52. package/common/sizeable.js +5 -9
  53. package/common/spock.js +5 -8
  54. package/common/stgame.js +18 -23
  55. package/common/stm.js +9 -15
  56. package/common/tell.js +9 -13
  57. package/common/temperature.instance.json +0 -112
  58. package/common/temperature.js +4 -8
  59. package/common/tester.js +1 -1
  60. package/common/testing.js +5 -9
  61. package/common/time.js +18 -23
  62. package/common/tokenize.js +4 -5
  63. package/common/ui.js +6 -12
  64. package/common/weight.js +4 -8
  65. package/common/yesno.js +5 -5
  66. package/package.json +2 -2
package/common/crew.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 avatar = require('./avatar')
4
4
  const animals = require('./animals')
@@ -37,53 +37,48 @@ const template = {
37
37
  ],
38
38
  };
39
39
 
40
- const createConfig = async () => {
41
- const config = new Config({ name: 'crew', }, module)
42
- config.stop_auto_rebuild()
43
- await config.add(avatar, animals)
44
- crew_instance.base = 'avatar'
45
- await config.initializer( ({config, apis}) => {
46
- const api = apis('properties')
47
- const conceptApi = apis('concept')
48
- // conceptApi.kindOfConcept({ config, modifiers: ['photon'], object: 'torpedo' })
49
- // conceptApi.kindOfConcept({ config, modifiers: ['crew'], object: 'member' })
50
- api.createActionPrefix({
51
- operator: 'arm',
52
- create: ['arm', 'weapon'],
53
- after: [{tag: 'weapon', id: 'weapon'}],
54
- config },
55
- /*
56
- ({context, km}) => {
57
- const value = {
58
- "marker": "unknown",
59
- "types": [
60
- "unknown"
61
- ],
62
- "unknown": true,
63
- "value": "armed",
64
- "word": "armed",
65
- "response": true
66
- }
67
- km("properties").api.setProperty(context.weapon.value, 'status', value, true)
40
+ const initializer = ({config, apis}) => {
41
+ const api = apis('properties')
42
+ const conceptApi = apis('concept')
43
+ // conceptApi.kindOfConcept({ config, modifiers: ['photon'], object: 'torpedo' })
44
+ // conceptApi.kindOfConcept({ config, modifiers: ['crew'], object: 'member' })
45
+ api.createActionPrefix({
46
+ operator: 'arm',
47
+ create: ['arm', 'weapon'],
48
+ after: [{tag: 'weapon', id: 'weapon'}],
49
+ config },
50
+ /*
51
+ ({context, km}) => {
52
+ const value = {
53
+ "marker": "unknown",
54
+ "types": [
55
+ "unknown"
56
+ ],
57
+ "unknown": true,
58
+ "value": "armed",
59
+ "word": "armed",
60
+ "response": true
68
61
  }
69
- */
70
- )
71
-
72
- api.createActionPrefix({
73
- operator: 'disarm',
74
- create: ['disarm'/*, 'weapon'*/],
75
- after: [{tag: 'weapon', id: 'weapon'}],
76
- config })
77
- })
78
- await config.restart_auto_rebuild()
79
- return config
62
+ km("properties").api.setProperty(context.weapon.value, 'status', value, true)
63
+ }
64
+ */
65
+ )
66
+
67
+ api.createActionPrefix({
68
+ operator: 'disarm',
69
+ create: ['disarm'/*, 'weapon'*/],
70
+ after: [{tag: 'weapon', id: 'weapon'}],
71
+ config })
80
72
  }
81
73
 
82
74
  // config.load(template, crew_instance)
83
75
  knowledgeModule( {
76
+ config: { name: 'crew', },
77
+ includes: [avatar, animals],
78
+ initializer,
79
+
84
80
  module,
85
81
  description: 'Knowledge about the enterprise and crew using a KM template',
86
- createConfig,
87
82
  test: {
88
83
  name: './crew.test.json',
89
84
  contents: crew_tests,
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const numbersKM = require('./numbers.js')
4
4
  const currency_tests = require('./currency.test.json')
@@ -40,7 +40,7 @@ class API {
40
40
 
41
41
  const api = new API()
42
42
 
43
- let configStruct = {
43
+ let config = {
44
44
  name: 'currency',
45
45
  operators: [
46
46
  "(([number]) [currency])",
@@ -90,52 +90,34 @@ let configStruct = {
90
90
  ],
91
91
  };
92
92
 
93
- const createConfig = async () => {
94
- const config = new Config(configStruct, module)
95
- config.stop_auto_rebuild()
96
- await config.add(numbersKM)
97
- await config.setApi(api)
98
- await config.initializer( ({config, objects, apis, addWord, addGenerator, baseConfig, uuid}) => {
99
- // const api = config.km('currency').api
100
- // const api = kms.currency.api
101
- const api = apis('currency')
102
- units = api.getUnits()
103
- for (word in units) {
104
- def = {"id": "currency", "initial": { units: units[word] }, uuid}
105
- addWord(word, def)
106
- }
107
- /*
108
- for (word in units) {
109
- words = config.get('words')
110
- def = {"id": "currency", "initial": { units: units[word] }, uuid}
111
- if (words[word]) {
112
- words[word].push(def)
113
- } else {
114
- words[word] = [def]
115
- }
116
- }
117
- */
118
-
119
- unitWords = api.getUnitWords();
120
- for (let words of unitWords) {
121
- addGenerator({
122
- match: ({context}) => context.marker == 'currency' && context.units == words.units && context.value == 1 && context.isAbstract,
123
- apply: ({context, g}) => words.one, uuid
124
- });
125
- addGenerator({
126
- match: ({context}) => context.marker == 'currency' && context.units == words.units && !isNaN(context.value) && (context.value != 1) && context.isAbstract,
127
- apply: ({context, g}) => words.many, uuid
128
- })
129
- }
130
- })
131
- await config.restart_auto_rebuild()
132
- return config
93
+ const initializer = ({config, objects, apis, addWord, addGenerator, baseConfig, uuid}) => {
94
+ const api = apis('currency')
95
+ units = api.getUnits()
96
+ for (word in units) {
97
+ def = {"id": "currency", "initial": { units: units[word] }, uuid}
98
+ addWord(word, def)
99
+ }
100
+ unitWords = api.getUnitWords();
101
+ for (let words of unitWords) {
102
+ addGenerator({
103
+ match: ({context}) => context.marker == 'currency' && context.units == words.units && context.value == 1 && context.isAbstract,
104
+ apply: ({context, g}) => words.one, uuid
105
+ });
106
+ addGenerator({
107
+ match: ({context}) => context.marker == 'currency' && context.units == words.units && !isNaN(context.value) && (context.value != 1) && context.isAbstract,
108
+ apply: ({context, g}) => words.many, uuid
109
+ })
110
+ }
133
111
  }
134
112
 
135
113
  knowledgeModule({
114
+ config,
115
+ includes: [numbersKM],
116
+ api: () => api,
117
+ initializer,
118
+
136
119
  module,
137
120
  description: 'Ways of specifying currency amount',
138
- createConfig,
139
121
  test: {
140
122
  name: './currency.test.json',
141
123
  contents: currency_tests,
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where, stableId } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where, stableId } = require('./runtime').theprogrammablemind
2
2
  const meta = require('./meta.js')
3
3
  const gdefaults = require('./gdefaults.js')
4
4
  const sdefaults = require('./sdefaults.js')
@@ -35,7 +35,7 @@ const warningSameNotEvaluated = (log, one) => {
35
35
  }
36
36
 
37
37
  // TODO implement what / what did you say ...
38
- let configStruct = {
38
+ let config = {
39
39
  name: 'dialogues',
40
40
  operators: [
41
41
  "([makeObject] (word))",
@@ -897,59 +897,56 @@ const getAsk = (config) => (uuid) => {
897
897
  }
898
898
 
899
899
 
900
- const createConfig = async () => {
901
- const config = new Config(configStruct, module)
902
- config.stop_auto_rebuild()
903
- await config.setApi(api)
904
- await config.add(articles, gdefaults, sdefaults, pos, negation, stm, meta, punctuation)
905
- await config.initializer( ({objects, config, isModule}) => {
906
- /* TODO add this beck in. some stuff from config needs to be here
907
- config.addArgs((args) => ({
908
- e: (context) => config.api.getEvaluator(args.s, args.log, context),
909
- }))
910
- */
911
- config.addArgs(({config, api, isA}) => ({
912
- isAListable: (context, type) => {
913
- if (context.marker == 'list' || context.listable) {
914
- return context.value.every( (element) => isA(element.marker, type) )
915
- } else {
916
- return isA(context.marker, type)
917
- }
918
- },
919
- toContext: (v) => {
920
- if (Array.isArray(v)) {
921
- return { marker: 'list', level: 1, value: v }
922
- }
923
- if (v.marker == 'list') {
924
- return v
925
- }
900
+ const initializer = ({objects, config, isModule}) => {
901
+ /* TODO add this beck in. some stuff from config needs to be here
902
+ config.addArgs((args) => ({
903
+ e: (context) => config.api.getEvaluator(args.s, args.log, context),
904
+ }))
905
+ */
906
+ config.addArgs(({config, api, isA}) => ({
907
+ isAListable: (context, type) => {
908
+ if (context.marker == 'list' || context.listable) {
909
+ return context.value.every( (element) => isA(element.marker, type) )
910
+ } else {
911
+ return isA(context.marker, type)
912
+ }
913
+ },
914
+ toContext: (v) => {
915
+ if (Array.isArray(v)) {
916
+ return { marker: 'list', level: 1, value: v }
917
+ }
918
+ if (v.marker == 'list') {
926
919
  return v
927
- },
928
- getUUIDScoped: (uuid) => { return {
929
- ask: getAsk(config)(uuid),
930
- }
931
- },
932
- toScopedId: (context) => {
933
- return api('dialogues').toScopedId(context)
934
- },
935
- }))
936
- objects.mentioned = []
937
- objects.variables = {
938
- }
939
- if (isModule) {
940
- } else {
941
- config.addWord("canbedoquestion", { id: "canBeDoQuestion", "initial": "{}" })
942
- config.addWord("doesable", { id: "doesAble", "initial": "{}" })
943
- }
944
- })
945
- await config.restart_auto_rebuild()
946
- return config
920
+ }
921
+ return v
922
+ },
923
+ getUUIDScoped: (uuid) => { return {
924
+ ask: getAsk(config)(uuid),
925
+ }
926
+ },
927
+ toScopedId: (context) => {
928
+ return api('dialogues').toScopedId(context)
929
+ },
930
+ }))
931
+ objects.mentioned = []
932
+ objects.variables = {
933
+ }
934
+ if (isModule) {
935
+ } else {
936
+ config.addWord("canbedoquestion", { id: "canBeDoQuestion", "initial": "{}" })
937
+ config.addWord("doesable", { id: "doesAble", "initial": "{}" })
938
+ }
947
939
  }
948
940
 
949
941
  knowledgeModule( {
942
+ config,
943
+ includes: [articles, gdefaults, sdefaults, pos, negation, stm, meta, punctuation],
944
+ initializer,
945
+ api: () => new API(),
946
+
950
947
  module,
951
948
  description: 'framework for dialogues',
952
- createConfig, newWay: true,
949
+ newWay: true,
953
950
  test: {
954
951
  name: './dialogues.test.json',
955
952
  contents: dialogues_tests,
@@ -41,14 +41,14 @@
41
41
  ],
42
42
  "generators": [
43
43
  {
44
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:77",
44
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
45
45
  "match": "({context}) => context.marker == 'noconversion'",
46
46
  "apply": "async ({context, gp}) => `there is no conversion between ${await gp(context.from)} and ${await gp(context.to)}`"
47
47
  }
48
48
  ],
49
49
  "bridges": [
50
50
  {
51
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:84",
51
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
52
52
  "id": "dimension",
53
53
  "isA": [],
54
54
  "generatorpr": {}
@@ -64,7 +64,7 @@
64
64
  "id": "amount"
65
65
  },
66
66
  {
67
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:104",
67
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
68
68
  "id": "degree",
69
69
  "words": [
70
70
  {
@@ -84,7 +84,7 @@
84
84
  "bridge": "{ marker: operator('dimension'), unit: after[0], value: before[0].value, amount: before[0] }"
85
85
  },
86
86
  {
87
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:117",
87
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
88
88
  "id": "convertToUnits",
89
89
  "bridge": "{ ...next(operator), from: before[0], to: after[0] }",
90
90
  "isA": [
@@ -1063,12 +1063,12 @@
1063
1063
  ],
1064
1064
  "generators": [
1065
1065
  {
1066
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:77"
1066
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5"
1067
1067
  }
1068
1068
  ],
1069
1069
  "bridges": [
1070
1070
  {
1071
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:84",
1071
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
1072
1072
  "id": "dimension",
1073
1073
  "isA": [],
1074
1074
  "generatorpr": {}
@@ -1084,7 +1084,7 @@
1084
1084
  "id": "amount"
1085
1085
  },
1086
1086
  {
1087
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:104",
1087
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
1088
1088
  "id": "degree",
1089
1089
  "words": [
1090
1090
  {
@@ -1103,7 +1103,7 @@
1103
1103
  "bridge": "{ marker: operator('dimension'), unit: after[0], value: before[0].value, amount: before[0] }"
1104
1104
  },
1105
1105
  {
1106
- "where": "/home/dev/code/theprogrammablemind/kms/common/dimension.js:117",
1106
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
1107
1107
  "id": "convertToUnits",
1108
1108
  "bridge": "{ ...next(operator), from: before[0], to: after[0] }",
1109
1109
  "isA": [
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where, Digraph } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const hierarchy = require('./hierarchy.js')
4
4
  const formulas = require('./formulas.js')
@@ -52,7 +52,7 @@ class API {
52
52
 
53
53
  const api = new API()
54
54
 
55
- let configStruct = {
55
+ let config = {
56
56
  name: 'dimension',
57
57
  operators: [
58
58
  "([dimension])",
@@ -170,23 +170,17 @@ let configStruct = {
170
170
  const template = {
171
171
  configs: [
172
172
  "dimension and unit are concepts",
173
- configStruct,
173
+ config,
174
174
  ],
175
175
  }
176
176
 
177
- const createConfig = async () => {
178
- const config = new Config({ name: 'dimension' }, module)
179
- config.stop_auto_rebuild()
180
- await config.add(hierarchy, formulas, testing)
181
- await config.setApi(api)
182
- await config.restart_auto_rebuild()
183
- return config
184
- }
185
-
186
177
  knowledgeModule({
178
+ config: { name: 'dimension' },
179
+ includes: [hierarchy, formulas, testing],
180
+ api: () => new API(),
181
+
187
182
  module,
188
183
  description: 'Used to define numeric temperature such as currency, temperature or weight',
189
- createConfig,
190
184
  template: { template, instance },
191
185
  test: {
192
186
  name: './dimension.test.json',
@@ -5219,6 +5219,20 @@
5219
5219
  1
5220
5220
  ]
5221
5221
  ],
5222
+ [
5223
+ [
5224
+ "is",
5225
+ 0
5226
+ ],
5227
+ [
5228
+ "list",
5229
+ 1
5230
+ ],
5231
+ [
5232
+ "unknown",
5233
+ 1
5234
+ ]
5235
+ ],
5222
5236
  [
5223
5237
  [
5224
5238
  "is",
@@ -21142,6 +21156,20 @@
21142
21156
  1
21143
21157
  ]
21144
21158
  ],
21159
+ [
21160
+ [
21161
+ "is",
21162
+ 0
21163
+ ],
21164
+ [
21165
+ "list",
21166
+ 1
21167
+ ],
21168
+ [
21169
+ "unknown",
21170
+ 1
21171
+ ]
21172
+ ],
21145
21173
  [
21146
21174
  [
21147
21175
  "is",
@@ -38769,6 +38797,20 @@
38769
38797
  1
38770
38798
  ]
38771
38799
  ],
38800
+ [
38801
+ [
38802
+ "a",
38803
+ 0
38804
+ ],
38805
+ [
38806
+ "is",
38807
+ 0
38808
+ ],
38809
+ [
38810
+ "unknown",
38811
+ 1
38812
+ ]
38813
+ ],
38772
38814
  [
38773
38815
  [
38774
38816
  "is",
@@ -41194,6 +41236,20 @@
41194
41236
  1
41195
41237
  ]
41196
41238
  ],
41239
+ [
41240
+ [
41241
+ "a",
41242
+ 0
41243
+ ],
41244
+ [
41245
+ "is",
41246
+ 0
41247
+ ],
41248
+ [
41249
+ "unknown",
41250
+ 1
41251
+ ]
41252
+ ],
41197
41253
  [
41198
41254
  [
41199
41255
  "is",
@@ -58263,6 +58319,34 @@
58263
58319
  1
58264
58320
  ]
58265
58321
  ],
58322
+ [
58323
+ [
58324
+ "a",
58325
+ 0
58326
+ ],
58327
+ [
58328
+ "is",
58329
+ 0
58330
+ ],
58331
+ [
58332
+ "unknown",
58333
+ 1
58334
+ ]
58335
+ ],
58336
+ [
58337
+ [
58338
+ "a",
58339
+ 0
58340
+ ],
58341
+ [
58342
+ "is",
58343
+ 0
58344
+ ],
58345
+ [
58346
+ "unknown",
58347
+ 1
58348
+ ]
58349
+ ],
58266
58350
  [
58267
58351
  [
58268
58352
  "apple",
@@ -59357,6 +59441,34 @@
59357
59441
  1
59358
59442
  ]
59359
59443
  ],
59444
+ [
59445
+ [
59446
+ "is",
59447
+ 0
59448
+ ],
59449
+ [
59450
+ "list",
59451
+ 1
59452
+ ],
59453
+ [
59454
+ "unknown",
59455
+ 1
59456
+ ]
59457
+ ],
59458
+ [
59459
+ [
59460
+ "is",
59461
+ 0
59462
+ ],
59463
+ [
59464
+ "list",
59465
+ 1
59466
+ ],
59467
+ [
59468
+ "unknown",
59469
+ 1
59470
+ ]
59471
+ ],
59360
59472
  [
59361
59473
  [
59362
59474
  "is",
package/common/edible.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, ensureTestFile, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, ensureTestFile, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const hierarchy = require('./hierarchy')
4
4
  const countable = require('./countable')
@@ -74,16 +74,11 @@ const template ={
74
74
  ],
75
75
  }
76
76
 
77
- const createConfig = async () => {
78
- const config = new Config({ name: 'edible' }, module)
79
- await config.add(countable, hierarchy)
80
- return config
81
- }
82
-
83
77
  knowledgeModule( {
78
+ config: { name: 'edible' },
79
+ includes: [countable, hierarchy],
84
80
  module,
85
81
  description: 'Edible things',
86
- createConfig,
87
82
  test: {
88
83
  name: './edible.test.json',
89
84
  contents: edible_tests,