theprogrammablemind_4wp 8.0.0-beta.0 → 8.0.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. package/client.js +42 -10
  2. package/package.json +1 -1
  3. package/src/config.js +51 -9
package/client.js CHANGED
@@ -47,7 +47,13 @@ const getConfig_getObjectsCheck = (config, testConfig) => {
47
47
  }
48
48
  const checks = (testConfig.checks && testConfig.checks.objects) || []
49
49
  if (Array.isArray(checks)) {
50
- return { [testConfigName]: checks }
50
+ const kmToChecks = { [testConfigName]: checks.filter( (check) => !check.km ) }
51
+ for (const check of checks) {
52
+ if (check.km) {
53
+ kmToChecks[check.km] = config.km(check.km).testConfig.checks.objects
54
+ }
55
+ }
56
+ return kmToChecks
51
57
  } else {
52
58
  return checks
53
59
  }
@@ -441,7 +447,7 @@ const setupContexts = (rawContexts) => {
441
447
  return contexts
442
448
  }
443
449
 
444
- const processContextsB = ({ config, hierarchy, semantics, generators, json, isTest, isInstance, instance, query, data, retries, url, commandLineArgs }) => {
450
+ const processContextsB = ({ config, hierarchy, semantics, generators, json, isTest, rebuildingTemplate, isInstance, instance, query, data, retries, url, commandLineArgs }) => {
445
451
  // TODO fix this name to contextsPrime
446
452
  const contextsPrime = []
447
453
  const generatedPrime = []
@@ -491,6 +497,9 @@ const processContextsB = ({ config, hierarchy, semantics, generators, json, isTe
491
497
  reason: e.reason,
492
498
  error: e.stack || e.error
493
499
  })
500
+ if (rebuildingTemplate) {
501
+ throw e
502
+ }
494
503
  }
495
504
  }
496
505
  if (contextPrime.controlRemove) {
@@ -764,7 +773,7 @@ const _process = async (config, query, { initializer, commandLineArgs, credentia
764
773
  start = runtime.performance.performance.now()
765
774
  }
766
775
  const { contextsPrime, generatedPrime, paraphrasesPrime, paraphrasesParenthesizedPrime, generatedParenthesizedPrime, responsesPrime } =
767
- processContextsB({ isTest, config, hierarchy, json, commandLineArgs /*, generators, semantics */ })
776
+ processContextsB({ isTest, rebuildingTemplate, config, hierarchy, json, commandLineArgs /*, generators, semantics */ })
768
777
  if (isTest) {
769
778
  end = runtime.performance.performance.now()
770
779
  clientSideTime = end - start
@@ -1557,19 +1566,16 @@ const knowledgeModuleImpl = async ({
1557
1566
  }
1558
1567
 
1559
1568
  if (isProcess) {
1560
- const config = createConfig()
1561
- setupConfig(config)
1562
- processResults = processResults({ config, errorHandler })
1563
- // setup();
1564
1569
  const parser = new runtime.ArgumentParser({
1565
1570
  description: 'Entodicton knowledge module'
1566
1571
  })
1567
1572
 
1573
+ const helpDebugWord = 'In order to get a debug break when a specific word is created set the DEBUG_WORD environment variable to the JSON of the association to break on. For example DEBUG_WORD=\'"the"\''
1568
1574
  const helpDebugAssociation = 'In order to get a debug break when a specific association is created set the DEBUG_ASSOCIATION environment variable to the JSON of the association to break on. For example DEBUG_ASSOCIATION=\'[["the", 0], ["mammal", 1]]\''
1569
1575
  const helpDebugHierarchy = 'In order to get a debug break when a specific hierarchy is created set the DEBUG_HIERARCHY environment variable to the JSON of the child-parent pair to break on. For example DEBUG_HIERARCHY=\'[["cat", 1], ["mammel", 1]]\''
1570
1576
  const helpDebugPriority = 'In order to get a debug break when a specific set of priorities is created set set DEBUG_PRIORITY environment variable to the JSON of the priorities that you want to break on. For example DEBUG_PRIORITY=\'[["verb", 0], ["article", 0]]\''
1571
1577
  const helpDebugContextualPriority = 'In order to get a debug break when a specific set of contextual priorities is created set set DEBUG_CONTEXTUAL_PRIORITY environment variable to the JSON of the priorities that you want to break on. For example DEBUG_CONTEXTUAL_PRIORITY=\'{ context: [["verb", 0], ["article", 0], select: 1}\''
1572
- const helpDebugBridge = 'In order to get a debug break when a specific bridge is created set the DEBUG_BRIDGE environment variable to id/level to break on. For example DEBUG_BRIDGE=\'id#level\''
1578
+ const helpDebugBridge = 'In order to get a debug break when a specific bridge is created set the DEBUG_BRIDGE environment variable to id to break on. For example DEBUG_BRIDGE=\'car\''
1573
1579
  const helpDebugOperator = 'In order to get a debug break when a specific hierarcy is created set the DEBUG_OPERATOR environment variable to debug any config loaded. For example DEBUG_OPERATOR=\'([operator] ([arg]))\''
1574
1580
 
1575
1581
  parser.add_argument('-tmn', '--testModuleName', { help: 'When running tests instead of using the current modules tests use the specified modules tests' })
@@ -1601,6 +1607,7 @@ const knowledgeModuleImpl = async ({
1601
1607
  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 ' })
1602
1608
  parser.add_argument('-d', '--debug', { action: 'store_true', help: 'When running with the --debug flag this set the debug flag in the config' })
1603
1609
  parser.add_argument('-da', '--debugAssociation', { action: 'store_true', help: helpDebugAssociation })
1610
+ parser.add_argument('-dw', '--debugWord', { action: 'store_true', help: helpDebugWord })
1604
1611
  parser.add_argument('-dh', '--debugHierarchy', { action: 'store_true', help: helpDebugHierarchy })
1605
1612
  parser.add_argument('-dp', '--debugPriority', { action: 'store_true', help: helpDebugPriority })
1606
1613
  parser.add_argument('-dcp', '--debugContextualPriority', { action: 'store_true', help: helpDebugContextualPriority })
@@ -1616,6 +1623,21 @@ const knowledgeModuleImpl = async ({
1616
1623
  args.rebuildTemplate = true
1617
1624
  }
1618
1625
 
1626
+ // dont debug the load of the KM's if rebuild template is on since we want to debug the template rebuild not the load
1627
+ if (args.rebuildTemplate) {
1628
+ global.pauseDebugging = true
1629
+ }
1630
+
1631
+ const config = createConfig()
1632
+ setupConfig(config)
1633
+ processResults = processResults({ config, errorHandler })
1634
+
1635
+ if (args.rebuildTemplate) {
1636
+ global.pauseDebugging = false
1637
+ }
1638
+
1639
+ // setup();
1640
+
1619
1641
  if (args.parenthesized) {
1620
1642
  config.parenthesized = true
1621
1643
  }
@@ -1652,6 +1674,10 @@ const knowledgeModuleImpl = async ({
1652
1674
  console.log(helpDebugAssociation)
1653
1675
  runtime.process.exit(-1)
1654
1676
  }
1677
+ if (args.debugWord) {
1678
+ console.log(helpDebugWord)
1679
+ runtime.process.exit(-1)
1680
+ }
1655
1681
  if (args.debugHierarchy) {
1656
1682
  console.log(helpDebugHierarchy)
1657
1683
  runtime.process.exit(-1)
@@ -1744,8 +1770,14 @@ const knowledgeModuleImpl = async ({
1744
1770
  }
1745
1771
  }
1746
1772
  if (args.print.includes('w')) {
1747
- for (const word in config.config.words) {
1748
- console.log(word.concat(' ', ...config.config.words[word].map((def) => JSON.stringify(def))))
1773
+ // { literals: Object, patterns: Array(2), hierarchy: Array(97) }
1774
+ console.log('literals')
1775
+ for (const word in config.config.words.literals) {
1776
+ console.log(' ' + word.concat(' ', ...config.config.words.literals[word].map((def) => JSON.stringify(def))))
1777
+ }
1778
+ console.log('patterns')
1779
+ for (const pattern of config.config.words.patterns) {
1780
+ console.log(' ' + JSON.stringify(pattern))
1749
1781
  }
1750
1782
  }
1751
1783
  if (args.print.includes('b')) {
package/package.json CHANGED
@@ -65,6 +65,6 @@
65
65
  "json-stable-stringify": "^1.0.1",
66
66
  "node-fetch": "^2.6.1"
67
67
  },
68
- "version": "8.0.0-beta.0",
68
+ "version": "8.0.0-beta.1",
69
69
  "license": "UNLICENSED"
70
70
  }
package/src/config.js CHANGED
@@ -40,6 +40,9 @@ const initWords = (words) => {
40
40
  }
41
41
 
42
42
  const debugPriority = (priority) => {
43
+ if (global.pauseDebugging) {
44
+ return
45
+ }
43
46
  if (global.entodictonDebugPriority) {
44
47
  if (helpers.subPriority(entodictonDebugPriority, priority)) {
45
48
  debugger // debug hierarchy hit
@@ -48,6 +51,9 @@ const debugPriority = (priority) => {
48
51
  }
49
52
 
50
53
  const debugAssociation = (association) => {
54
+ if (global.pauseDebugging) {
55
+ return
56
+ }
51
57
  if (global.entodictonDebugAssociation) {
52
58
  if (helpers.safeEquals(global.entodictonDebugAssociation, association)) {
53
59
  debugger // debug association hit
@@ -55,7 +61,21 @@ const debugAssociation = (association) => {
55
61
  }
56
62
  }
57
63
 
64
+ const debugWord = (word) => {
65
+ if (global.pauseDebugging) {
66
+ return
67
+ }
68
+ if (global.entodictonDebugWord) {
69
+ if (helpers.safeEquals(global.entodictonDebugWord, word)) {
70
+ debugger // debug word hit
71
+ }
72
+ }
73
+ }
74
+
58
75
  const debugHierarchy = (pair) => {
76
+ if (global.pauseDebugging) {
77
+ return
78
+ }
59
79
  if (global.entodictonDebugHierarchy) {
60
80
  if (helpers.safeEquals(global.entodictonDebugHierarchy, pair)) {
61
81
  debugger // debug hierarchy hit
@@ -64,14 +84,20 @@ const debugHierarchy = (pair) => {
64
84
  }
65
85
 
66
86
  const debugBridge = (bridge) => {
87
+ if (global.pauseDebugging) {
88
+ return
89
+ }
67
90
  if (global.entodictonDebugBridge) {
68
- if (global.entodictonDebugBridge[0] == bridge.id && global.entodictonDebugBridge[1] == bridge.level) {
91
+ if (global.entodictonDebugBridge == bridge.id) {
69
92
  debugger // debug hierarchy hit
70
93
  }
71
94
  }
72
95
  }
73
96
 
74
97
  const debugOperator = (operator) => {
98
+ if (global.pauseDebugging) {
99
+ return
100
+ }
75
101
  if (global.entodictonDebugOperator) {
76
102
  if ((operator.pattern || operator) === global.entodictonDebugOperator) {
77
103
  debugger // debug operator hit
@@ -80,18 +106,29 @@ const debugOperator = (operator) => {
80
106
  }
81
107
 
82
108
  const debugConfigProps = (config) => {
109
+ if (global.pauseDebugging) {
110
+ return
111
+ }
83
112
  if (!config) {
84
113
  return
85
114
  }
86
115
  const checkProps = [
87
116
  { property: 'priorities', check: (v) => debugPriority(v) },
88
117
  { property: 'association', check: (v) => debugAssociation(v) },
118
+ { property: 'words', check: (v) => debugAssociation(v) },
89
119
  { property: 'hierarchy', check: (v) => debugHierarchy(v) },
90
120
  { property: 'operators', check: (v) => debugOperator(v) },
91
121
  { property: 'bridges', check: (v) => debugBridge(v) }
92
122
  ]
93
123
  for (const { property, check } of checkProps) {
94
- if (config[property]) {
124
+ if (property == 'words') {
125
+ if (config[property]) {
126
+ for (const value in config[property].literals) {
127
+ check(value)
128
+ }
129
+ }
130
+ }
131
+ else if (config[property]) {
95
132
  for (const value of config[property]) {
96
133
  check(value)
97
134
  }
@@ -260,7 +297,7 @@ const handleBridgeProps = (config, bridge, { addFirst, uuid } = {}) => {
260
297
  if (bridge.words) {
261
298
  for (let def of bridge.words) {
262
299
  if (typeof def === 'string') {
263
- config.addWordInternal(def, { id: bridge.id, initial: `{ value: "${def}"}` })
300
+ config.addWordInternal(def, { id: bridge.id, initial: `{ value: "${bridge.id}"}` })
264
301
  } else {
265
302
  const word = def.word
266
303
  def = { initial: JSON.stringify(def), id: bridge.id, word }
@@ -404,13 +441,13 @@ if (runtime.process.env.DEBUG_ASSOCIATION) {
404
441
  global.entodictonDebugAssociation = JSON.parse(runtime.process.env.DEBUG_ASSOCIATION)
405
442
  }
406
443
 
444
+ if (runtime.process.env.DEBUG_WORD) {
445
+ global.entodictonDebugWord = runtime.process.env.DEBUG_WORD
446
+ }
447
+
407
448
  if (runtime.process.env.DEBUG_BRIDGE) {
408
- // id/level
409
- global.entodictonDebugBridge = runtime.process.env.DEBUG_BRIDGE.split('/')
410
- if (global.entodictonDebugBridge.length !== 2) {
411
- console.log('Expected DEBUG_BRIDGE to be of the form "id/level"')
412
- process.exit(-1)
413
- }
449
+ // id
450
+ global.entodictonDebugBridge = runtime.process.env.DEBUG_BRIDGE
414
451
  global.entodictonDebugBridge[1] = parseInt(global.entodictonDebugBridge[1])
415
452
  }
416
453
 
@@ -1458,6 +1495,7 @@ class Config {
1458
1495
  hierarchy: [],
1459
1496
  }
1460
1497
  }
1498
+ debugWord(word)
1461
1499
 
1462
1500
  const literals = this.config.words.literals
1463
1501
  def = Object.assign({}, def, { uuid: uuid || this._uuid })
@@ -1582,6 +1620,10 @@ class Config {
1582
1620
  return client.process(this, query, options)
1583
1621
  }
1584
1622
 
1623
+ processQuery (query, options) {
1624
+ return this.process(query, options)
1625
+ }
1626
+
1585
1627
  initDefaults () {
1586
1628
  const init = (config) => {
1587
1629
  if (!config.objects) {