theprogrammablemind_4wp 7.5.8-beta.77 → 7.5.8-beta.79

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 (3) hide show
  1. package/client.js +10 -7
  2. package/package.json +1 -1
  3. package/src/config.js +34 -76
package/client.js CHANGED
@@ -591,7 +591,7 @@ const loadInstance = (config, instance) => {
591
591
  config.addAssociations(instance.associations)
592
592
  }
593
593
  if (instance.learned_contextual_priorities && instance.learned_contextual_priorities.length > 0) {
594
- config.addContextualPriorities(instance.learned_contextual_priorities)
594
+ config.addPriorities(instance.learned_contextual_priorities)
595
595
  }
596
596
  }
597
597
  }
@@ -1122,6 +1122,13 @@ const defaultInnerProcess = (config, errorHandler, responses) => {
1122
1122
  }
1123
1123
  console.log("KM's loaded", config.configs.map((c) => c.name))
1124
1124
  console.log('This is the global objects from running semantics:\n', config.objects)
1125
+ if (!_.isEmpty(responses.learned_contextual_priorities)) {
1126
+ console.log('\nThe learned contextual priorties are :\n')
1127
+ for (const lcp of responses.learned_contextual_priorities) {
1128
+ console.log(` ${JSON.stringify(lcp)},\n`)
1129
+ }
1130
+ console.log("\n")
1131
+ }
1125
1132
  if (responses.logs) {
1126
1133
  console.log('Logs')
1127
1134
  responses.logs.forEach((log) => console.log(` ${log}`))
@@ -1433,6 +1440,7 @@ const knowledgeModule = async ({
1433
1440
  parser.add_argument('-tmn', '--testModuleName', { help: 'When running tests instead of using the current modules tests use the specified modules tests' })
1434
1441
  parser.add_argument('-t', '--test', { action: 'store_true', help: 'Run the tests. Create tests by running with the --query + --save flag' })
1435
1442
  parser.add_argument('-tv', '--testVerbose', { action: 'store_true', help: 'Run the tests in verbose mode. Create tests by running with the --query or --loop with the --save flag' })
1443
+ // parser.add_argument('-ttr', '--testToRun', { help: 'Only the specified test will be run' })
1436
1444
  parser.add_argument('-tva', '--testAllVerbose', { action: 'store_true', help: 'Run the tests in verbose mode. All the tests will be run instead of stopping at first failure. Create tests by running with the --query or --loop with the --save flag' })
1437
1445
  parser.add_argument('-tnp', '--testNoParenthesized', { action: 'store_true', help: 'Don\' check parenthesized differences for the tests' })
1438
1446
  parser.add_argument('-n', '--count', { help: 'Number of times to run the tests. Default is one. Use this to check for flakey test. If possible the system will print out a message with the word "hint" suggesting how to fix the problem' })
@@ -1452,7 +1460,7 @@ const knowledgeModule = async ({
1452
1460
  parser.add_argument('-c', '--clean', { help: 'Remove data from the test files. a === association' })
1453
1461
  parser.add_argument('-od', '--objectDiff', { action: 'store_true', help: 'When showing the objects use a colour diff' })
1454
1462
  parser.add_argument('-daa', '--dontAddAssociations', { action: 'store_true', help: 'Do not add associations from the tests.' })
1455
- parser.add_argument('-p', '--print', { help: 'Print the specified elements c === config, w === words, b === bridges, o === operators d === objects (d for data), h === hierarchy, g === generators, s === semantics, l === load t=tests ordering p === priorities a == associations j == JSON sent to server x == contextual priorities. for example --print wb' })
1463
+ parser.add_argument('-p', '--print', { help: 'Print the specified elements c === config, w === words, b === bridges, o === operators d === objects (d for data), h === hierarchy, g === generators, s === semantics, l === load t=tests ordering p === priorities a == associations j == JSON sent to server. for example --print wb' })
1456
1464
  parser.add_argument('-s', '--save', { action: 'store_true', help: 'When running with the --query flag this will save the current run to the test file. When running without the --query flag all tests will be run and resaved.' })
1457
1465
  parser.add_argument('-sd', '--saveDeveloper', { action: 'store_true', help: 'Same as -s but the query will not show up in the info command.' })
1458
1466
  parser.add_argument('-dl', '--debugLoops', { action: 'store_true', help: 'When running with the --debugLoops flag the logs calls to semantics and generators will be immediately written to the console '})
@@ -1629,11 +1637,6 @@ const knowledgeModule = async ({
1629
1637
  console.log(JSON.stringify(priority))
1630
1638
  }
1631
1639
  }
1632
- if (args.print.includes('x')) {
1633
- for (let contextual_priority of config.config.contextual_priorities) {
1634
- console.log(JSON.stringify(contextual_priority))
1635
- }
1636
- }
1637
1640
  if (args.print.includes('h')) {
1638
1641
  for (let edge of config.config.hierarchy) {
1639
1642
  console.log(JSON.stringify(edge))
package/package.json CHANGED
@@ -64,6 +64,6 @@
64
64
  "json-stable-stringify": "^1.0.1",
65
65
  "node-fetch": "^2.6.1"
66
66
  },
67
- "version": "7.5.8-beta.77",
67
+ "version": "7.5.8-beta.79",
68
68
  "license": "ISC"
69
69
  }
package/src/config.js CHANGED
@@ -23,13 +23,6 @@ const indent = (string, indent) => {
23
23
  }
24
24
 
25
25
  const config_toServer = (config) => {
26
- /*
27
- if (config.contextual_priorities) {
28
- config.contextual_priorities = config.contextual_priorities.map((cp) => {
29
- return [cp.context, cp.choose]
30
- })
31
- }
32
- */
33
26
  }
34
27
 
35
28
  const debugPriority = (priority) => {
@@ -48,14 +41,6 @@ const debugAssociation = (association) => {
48
41
  }
49
42
  }
50
43
 
51
- const debugContextualPriority = (contextual_priority) => {
52
- if (global.entodictonDebugContextualPriority) {
53
- if (helpers.safeEquals(entodictonDebugContextualPriority, contextual_priority)) {
54
- debugger; // debug hierarchy hit
55
- }
56
- }
57
- }
58
-
59
44
  const debugHierarchy = (pair) => {
60
45
  if (global.entodictonDebugHierarchy) {
61
46
  if (helpers.safeEquals(global.entodictonDebugHierarchy, pair)) {
@@ -87,7 +72,6 @@ const debugConfigProps = (config) => {
87
72
  const checkProps = [
88
73
  { property: 'priorities', check: (v) => debugPriority(v) },
89
74
  { property: 'association', check: (v) => debugAssociation(v) },
90
- { property: 'contextual_priorities', check: (v) => debugContextualPriority(v) },
91
75
  { property: 'hierarchy', check: (v) => debugHierarchy(v) },
92
76
  { property: 'operators', check: (v) => debugOperator(v) },
93
77
  { property: 'bridges', check: (v) => debugBridge(v) },
@@ -109,7 +93,6 @@ const validConfigProps = (config) => {
109
93
  'operators',
110
94
  'words',
111
95
  'priorities',
112
- 'contextual_priorities',
113
96
  'associations',
114
97
  'name',
115
98
  'version',
@@ -188,20 +171,20 @@ const elist = (list, check, prefix) => {
188
171
  }
189
172
  }
190
173
  }
191
- const contextual_priorities_valid = (cps) => {
192
- elist(cps, (cp) => contextual_priority_valid(cp), (index, e) => `contextual_priorities has an invalid contextual priority at position ${index}. ${e}`)
174
+ const priorities_valid = (cps) => {
175
+ elist(cps, (cp) => priority_valid(cp), (index, e) => `priorities has an invalid priority at position ${index}. ${e}`)
193
176
  }
194
177
 
195
- const contextual_priority_valid = (cp) => {
178
+ const priority_valid = (cp) => {
196
179
  if (!cp.context) {
197
- throw new Error(`The contextual priority ${JSON.stringify(cp)} is missing the "context" property. That is a list of the operator keys that are to be prioritized differently.`)
180
+ throw new Error(`The priority ${JSON.stringify(cp)} is missing the "context" property. That is a list of the operator keys that are to be prioritized differently.`)
198
181
  }
199
182
  if (!_.isArray(cp.context)) {
200
- throw new Error(`The contextual priority ${JSON.stringify(cp)} has an invalid "context" value. That is a list of the operator keys that are to be prioritized differently.`)
183
+ throw new Error(`The priority ${JSON.stringify(cp)} has an invalid "context" value. That is a list of the operator keys that are to be prioritized differently.`)
201
184
  }
202
- elist(cp.context, (element) => operatorKey_valid(element), (index, e) => `The contextual priority ${JSON.stringify(cp)} has an invalid operator key at position ${index}. ${e}`)
185
+ elist(cp.context, (element) => operatorKey_valid(element), (index, e) => `The priority ${JSON.stringify(cp)} has an invalid operator key at position ${index}. ${e}`)
203
186
  if (!_.isArray(cp.choose)) {
204
- throw new Error(`The contextual priority ${JSON.stringify(cp)} has an invalid "choose" value. The value should be a list of the operators in the context to consider for prioritization.`)
187
+ throw new Error(`The priority ${JSON.stringify(cp)} has an invalid "choose" value. The value should be a list of the operators in the context to consider for prioritization.`)
205
188
  }
206
189
  elist(cp.choose,
207
190
  (element) => {
@@ -212,7 +195,7 @@ const contextual_priority_valid = (cp) => {
212
195
  throw new Error(`The value should be an index into the "context" property of the operator that is to be considered for prioritization. Valid values are between 0 and ${cp.context.length-1}.`)
213
196
  }
214
197
  },
215
- (index, e) => `The choose property in the contextual priority ${JSON.stringify(cp)} has an invalid index at position ${index}. ${e}`
198
+ (index, e) => `The choose property in the priority ${JSON.stringify(cp)} has an invalid index at position ${index}. ${e}`
216
199
  )
217
200
  }
218
201
 
@@ -245,7 +228,7 @@ const handleBridgeProps = (config, bridge, addFirst) => {
245
228
  if (typeof after == 'string') {
246
229
  after = [after, 0]
247
230
  }
248
- config.addPriorities({ "context": [[bridge.id, bridge.level], after], "choose": [0] })
231
+ config.addPriority({ context: [[bridge.id, bridge.level], after], choose: [0] })
249
232
  }
250
233
  }
251
234
  if (bridge.after) {
@@ -253,7 +236,7 @@ const handleBridgeProps = (config, bridge, addFirst) => {
253
236
  if (typeof before == 'string') {
254
237
  before = [before, 0]
255
238
  }
256
- config.addPriorities({ "context": [before, [bridge.id, bridge.level]], "choose": [0] })
239
+ config.addPriority({ context: [before, [bridge.id, bridge.level]], choose: [0] })
257
240
  }
258
241
  }
259
242
  if (bridge.words) {
@@ -381,6 +364,11 @@ if (runtime.process.env.DEBUG_HIERARCHY) {
381
364
  global.entodictonDebugHierarchy = JSON.parse(runtime.process.env.DEBUG_HIERARCHY)
382
365
  }
383
366
 
367
+
368
+ // i keep randomly doing one of the other so I will just make both work the same way
369
+ if (runtime.process.env.DEBUG_PRIORITIES) {
370
+ global.entodictonDebugPriority = JSON.parse(runtime.process.env.DEBUG_PRIORITIES)
371
+ }
384
372
  if (runtime.process.env.DEBUG_PRIORITY) {
385
373
  global.entodictonDebugPriority = JSON.parse(runtime.process.env.DEBUG_PRIORITY)
386
374
  }
@@ -739,10 +727,10 @@ class Config {
739
727
  addAssociation: (...args) => this.addAssociation(...args),
740
728
  addAssociations: (...args) => this.addAssociations(...args),
741
729
  addBridge: (...args) => this.addBridge(...args, uuid),
742
- addContextualPriority: (...args) => this.addContextualPriority(...args),
743
730
  addGenerator: (...args) => this.addGenerator(...args, uuid, config.name),
744
731
  addHierarchy: (...args) => this.addHierarchy(...args),
745
732
  addOperator: (...args) => this.addOperator(...args, uuid),
733
+ addPriority: (...args) => this.addPriority(...args),
746
734
  addPriorities: (...args) => this.addPriorities(...args),
747
735
  addSemantic: (...args) => this.addSemantic(...args, uuid, config.name),
748
736
  removeSemantic: (...args) => this.removeSemantic(...args, uuid, config.name),
@@ -815,7 +803,6 @@ class Config {
815
803
  },
816
804
  eqClasses: [],
817
805
  priorities: [], // Done
818
- contextual_priorities: [],
819
806
  version: '3',
820
807
  debug: false,
821
808
  associations: { // Done
@@ -854,7 +841,6 @@ class Config {
854
841
  'namespaces',
855
842
  'eqClasses',
856
843
  'priorities',
857
- 'contextual_priorities',
858
844
  'associations',
859
845
  'words',
860
846
  'floaters',
@@ -1053,16 +1039,6 @@ class Config {
1053
1039
  this.validifyTemplate(template)
1054
1040
  instance.template = template
1055
1041
  this.logs.push(`loading template for ${this.name}`)
1056
- /*
1057
- if (instance && (instance.associations || instance.learned_contextual_priorities) && !options.rebuild) {
1058
- if (instance.associations) {
1059
- this.addAssociations(instance.associations)
1060
- }
1061
- if (instance.learned_contextual_priorities && instance.learned_contextual_priorities.length > 0) {
1062
- this.addContextualPriorities(instance.learned_contextual_priorities)
1063
- }
1064
- }
1065
- */
1066
1042
  if (options.rebuild) {
1067
1043
  // TODO fix beforeQuery
1068
1044
  template = { fragments: [], queries: [], ...template }
@@ -1111,12 +1087,6 @@ class Config {
1111
1087
  }
1112
1088
  }
1113
1089
 
1114
- addContextualPriorities (cps) {
1115
- for (let cp of cps) {
1116
- this.addContextualPriority(cp)
1117
- }
1118
- }
1119
-
1120
1090
  debugConfig() {
1121
1091
  }
1122
1092
 
@@ -1134,24 +1104,21 @@ class Config {
1134
1104
 
1135
1105
  // TODO add more error checking to these like addHierarchy has
1136
1106
  // TODO change name from priorities to priority
1137
- addPriorities (priorities) {
1107
+ // [ context: <list of [id, level]>, choose: [<indexes of prioritized operator>], [ordered: [true|false]] ]
1108
+ addPriority (priority) {
1138
1109
  if (!this.config.priorities) {
1139
1110
  this.config.priorities = []
1140
1111
  }
1141
- debugPriority(priorities)
1142
- this.config.priorities.push(priorities)
1143
- this._delta.json.priorities.push({ action: 'add', priorities })
1112
+ debugPriority(priority)
1113
+ priority_valid(priority)
1114
+ this.config.priorities.push(priority)
1115
+ this._delta.json.priorities.push({ action: 'add', priority })
1144
1116
  }
1145
1117
 
1146
- // [ operators: <list of [id, level]>, select: <index of prioritized operator> ]
1147
- addContextualPriority(contextual_priority) {
1148
- if (!this.config.contextual_priorities) {
1149
- this.config.contextual_priorities = []
1118
+ addPriorities (priorities) {
1119
+ for (let priority of priorities) {
1120
+ this.addPriority(priority)
1150
1121
  }
1151
- debugContextualPriority(contextual_priority)
1152
- contextual_priority_valid(contextual_priority)
1153
- this.config.contextual_priorities.push(contextual_priority)
1154
- this._delta.json.contextual_priorities.push({ action: 'add', contextual_priority: contextual_priority })
1155
1122
  }
1156
1123
 
1157
1124
  addHierarchy (child, parent) {
@@ -1549,7 +1516,6 @@ class Config {
1549
1516
  config.hierarchy = config.hierarchy || []
1550
1517
  config.associations = config.associations || { negative: [], positive: [] }
1551
1518
  config.priorities = config.priorities || []
1552
- config.contextual_priorities = config.contextual_priorities || []
1553
1519
  }
1554
1520
 
1555
1521
  this.maxDepth = 20 // for generators and semantics
@@ -1603,8 +1569,8 @@ class Config {
1603
1569
  }
1604
1570
  }
1605
1571
 
1606
- if (config && config.contextual_priorities) {
1607
- contextual_priorities_valid(config.contextual_priorities)
1572
+ if (config && config.priorities) {
1573
+ priorities_valid(config.priorities)
1608
1574
  }
1609
1575
 
1610
1576
  normalizeConfig(config)
@@ -1692,7 +1658,6 @@ class Config {
1692
1658
  bridges: [],
1693
1659
  associations: [],
1694
1660
  priorities: [],
1695
- contextual_priorities: [],
1696
1661
  hierarchy: [],
1697
1662
  }
1698
1663
  }
@@ -2322,7 +2287,6 @@ class Config {
2322
2287
  bridges: this.config.bridges,
2323
2288
  hierarchy: this.config.hierarchy,
2324
2289
  priorities: this.config.priorities,
2325
- contextual_priorities: this.config.contextual_priorities,
2326
2290
  associations: this.config.associations,
2327
2291
  words: this.config.words
2328
2292
  }
@@ -2331,7 +2295,6 @@ class Config {
2331
2295
  this.config.bridges = []
2332
2296
  this.config.hierarchy = []
2333
2297
  this.config.priorities = []
2334
- this.config.contextual_priorities = []
2335
2298
  this.config.associations = { positive: [], negative: [] }
2336
2299
  this.config.words = {}
2337
2300
 
@@ -2540,25 +2503,20 @@ class Config {
2540
2503
 
2541
2504
  if (config.priorities) {
2542
2505
  let priorities = config.priorities
2543
- priorities = priorities.map((p) => {
2544
- return { ...p, context: p.context.map( (id) => [toNS(id[0]), id[1]] )}
2545
- })
2546
- config.priorities = priorities
2547
- }
2548
-
2549
- if (config.contextual_priorities) {
2550
- let contextual_priorities = config.contextual_priorities
2551
- contextual_priorities = contextual_priorities.map((cp) => {
2506
+ priorities = priorities.map((cp) => {
2552
2507
  const { context, choose, ordered } = cp
2553
- return {
2508
+ const priority = {
2554
2509
  context: context.map((id) => {
2555
2510
  return [toNS(id[0]), id[1]]
2556
2511
  }),
2557
2512
  choose,
2558
- ordered
2559
2513
  }
2514
+ if (ordered) {
2515
+ priority.ordered = ordered
2516
+ }
2517
+ return priority
2560
2518
  })
2561
- config.contextual_priorities = contextual_priorities
2519
+ config.priorities = priorities
2562
2520
  }
2563
2521
 
2564
2522
  for (const bag of bags) {