theprogrammablemind 7.12.2 → 7.12.3-beta.1

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 +27 -21
  2. package/package.json +1 -1
  3. package/src/config.js +90 -66
package/client.js CHANGED
@@ -89,12 +89,12 @@ const sameJSON = (json1, json2) => {
89
89
  return JSON.stringify(sjson1) == JSON.stringify(sjson2)
90
90
  }
91
91
 
92
- const vimdiff = (actualJSON, expectedJSON) => {
92
+ const vimdiff = (actualJSON, expectedJSON, title) => {
93
93
  const path = '.'
94
94
  const actual = sortJson(actualJSON, { depth: 25 })
95
- runtime.fs.writeFileSync(`${path}/actual.json`, JSON.stringify(actual, 0, 2))
95
+ runtime.fs.writeFileSync(`${path}/actual.json`, JSON.stringify({ title, actual}, 0, 2))
96
96
  const expected = sortJson(expectedJSON, { depth: 25 })
97
- runtime.fs.writeFileSync(`${path}/expected.json`, JSON.stringify(expected, 0, 2))
97
+ runtime.fs.writeFileSync(`${path}/expected.json`, JSON.stringify({ title, expected}, 0, 2))
98
98
  // console.log(`vimdiff ${path}/actual.json ${path}/expected.json`)
99
99
  {
100
100
  const editor = runtime.process.env.EDITOR || 'vimdiff'
@@ -196,7 +196,7 @@ const setupArgs = (args, config, logs, hierarchy, uuidForScoping) => {
196
196
 
197
197
  args.addAssumedScoped = (args, assumed) => {
198
198
  const addAssumed = (args, ...moreAssumed) => {
199
- return { ...args, assumed: Object.assign({}, (args.assumed || {}), ...moreAssumed) }
199
+ return { ...args, assumed: Object.assign({}, assumed, (args.assumed || {}), ...moreAssumed) }
200
200
  }
201
201
 
202
202
  args.s = (c) => config.getSemantics(logs).apply(args, c)
@@ -638,7 +638,9 @@ const loadInstance = (config, instance) => {
638
638
  // config.addInternal(results, useOldVersion = true, skipObjects = false, includeNamespaces = true, allowNameToBeNull = false)
639
639
  // config.addInternal(config.template.queries[i], { handleCalculatedProps: true } )
640
640
  const uuid = config.nameToUUID(instance.name)
641
- config.addInternal(_.cloneDeep(instance.template.queries[i]), { uuid, addFirst: true, handleCalculatedProps: true })
641
+ // used to do a CLONE
642
+ // config.addInternal(_.cloneDeep(instance.template.queries[i]), { uuid, addFirst: true, handleCalculatedProps: true })
643
+ config.addInternal(instance.template.queries[i], { uuid, addFirst: true, handleCalculatedProps: true })
642
644
  } else if (results.apply) {
643
645
  const objects = config.get('objects')
644
646
  const args = { objects, getObjects: getObjects(objects) }
@@ -1843,34 +1845,33 @@ const knowledgeModuleImpl = async ({
1843
1845
  if (results.length > 0) {
1844
1846
  let headerShown = false
1845
1847
 
1846
- let errorCount = 0
1848
+ let hasError = false
1847
1849
  for (const result of results) {
1848
- let hasError = false
1849
1850
  if (JSON.stringify(result.expected.paraphrases) !== JSON.stringify(result.actual.paraphrases)) {
1850
- hasError = true
1851
+ result.hasError = true
1851
1852
  }
1852
1853
  if (!args.testNoParenthesized) {
1853
1854
  if (JSON.stringify(result.expected.paraphrasesParenthesized) !== JSON.stringify(result.actual.paraphrasesParenthesized)) {
1854
- hasError = true
1855
+ result.hasError = true
1855
1856
  }
1856
1857
  if (JSON.stringify(result.expected.generatedParenthesized) !== JSON.stringify(result.actual.generatedParenthesized)) {
1857
- hasError = true
1858
+ result.hasError = true
1858
1859
  }
1859
1860
  }
1860
1861
  if (JSON.stringify(result.expected.responses) !== JSON.stringify(result.actual.responses)) {
1861
- hasError = true
1862
+ result.hasError = true
1862
1863
  }
1863
1864
  if (JSON.stringify(result.expected.checked) !== JSON.stringify(result.actual.checked)) {
1864
- hasError = true
1865
+ result.hasError = true
1865
1866
  }
1866
1867
  if (!sameJSON(result.expected.checkedContexts, result.actual.checkedContexts)) {
1867
- hasError = true
1868
+ result.hasError = true
1868
1869
  }
1869
- if (hasError) {
1870
- errorCount += 1
1870
+ if (result.hasError) {
1871
+ hasError = true
1871
1872
  }
1872
1873
  }
1873
- const hasError = errorCount > 0
1874
+
1874
1875
  if (hasError) {
1875
1876
  console.log('**************************** ERRORS ************************')
1876
1877
  for (const result of results) {
@@ -1885,21 +1886,20 @@ const knowledgeModuleImpl = async ({
1885
1886
  newError = true
1886
1887
  headerShown = true
1887
1888
  if (args.vimdiff) {
1888
- vimdiff(result.actual.paraphrasesParenthesized, result.expected.paraphrasesParenthesized)
1889
+ vimdiff(actual, expected, `"${result.utterance}" - ${label}`)
1889
1890
  }
1890
- errorCount += 1
1891
+ result.hasError = true
1891
1892
  }
1892
1893
  }
1893
1894
  show('paraphrases', result.expected.paraphrases, result.actual.paraphrases)
1894
1895
  if (!args.testNoParenthesized) {
1895
1896
  show('paraphrases parenthesized', result.expected.paraphrasesParenthesized, result.actual.paraphrasesParenthesized)
1896
1897
  }
1897
- /*
1898
- }
1899
1898
  show('responses', result.expected.responses, result.actual.responses)
1900
1899
  if (!args.testNoParenthesized) {
1901
1900
  show('responses parenthesized', result.expected.generatedParenthesized, result.actual.generatedParenthesized)
1902
1901
  }
1902
+ /*
1903
1903
  if (JSON.stringify(result.expected.paraphrases) !== JSON.stringify(result.actual.paraphrases)) {
1904
1904
  if (!headerShown) {
1905
1905
  console.log(' Failure')
@@ -1972,7 +1972,13 @@ const knowledgeModuleImpl = async ({
1972
1972
  if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
1973
1973
  console.log('use -v arg to write files expected.json and actual.json in the current directory for detailed comparison. Or do -s and then git diff the changes.')
1974
1974
  // console.log(JSON.stringify(contexts))
1975
- console.log(`**************************** THERE WERE ${errorCount} ERRORS ************************`)
1975
+ let errorCount = 0
1976
+ for (const result of results) {
1977
+ if (result.hasError) {
1978
+ errorCount += 1
1979
+ }
1980
+ }
1981
+ console.log(`**************************** THERE WERE ${errorCount} TEST FAILURES ************************`)
1976
1982
  }
1977
1983
  }
1978
1984
  }
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": "7.12.2",
68
+ "version": "7.12.3-beta.1",
69
69
  "license": "UNLICENSED"
70
70
  }
package/src/config.js CHANGED
@@ -259,14 +259,16 @@ const handleBridgeProps = (config, bridge, addFirst) => {
259
259
  }
260
260
  }
261
261
  */
262
+
263
+ const addUUID = (obj) => { return { ...obj, uuid: config.uuid } }
262
264
  if (bridge.generators) {
263
265
  const generators = [...bridge.generators]
264
266
  generators.reverse()
265
267
  for (const generator of generators) {
266
268
  if (addFirst) {
267
- config.config.generators.unshift(generator)
269
+ config.config.generators.unshift(addUUID(generator))
268
270
  } else {
269
- config.config.generators.push(generator)
271
+ config.config.generators.push(addUUID(generator))
270
272
  }
271
273
  }
272
274
  }
@@ -287,9 +289,9 @@ const handleBridgeProps = (config, bridge, addFirst) => {
287
289
  property: 'generatorp'
288
290
  }
289
291
  if (addFirst) {
290
- config.config.generators.unshift(generator)
292
+ config.config.generators.unshift(addUUID(generator))
291
293
  } else {
292
- config.config.generators.push(generator)
294
+ config.config.generators.push(addUUID(generator))
293
295
  }
294
296
  }
295
297
  if (bridge.generatorr) {
@@ -304,9 +306,9 @@ const handleBridgeProps = (config, bridge, addFirst) => {
304
306
  property: 'generatorr'
305
307
  }
306
308
  if (addFirst) {
307
- config.config.generators.unshift(generator)
309
+ config.config.generators.unshift(addUUID(generator))
308
310
  } else {
309
- config.config.generators.push(generator)
311
+ config.config.generators.push(addUUID(generator))
310
312
  }
311
313
  }
312
314
  if (bridge.evaluator) {
@@ -318,9 +320,9 @@ const handleBridgeProps = (config, bridge, addFirst) => {
318
320
  property: 'evaluator'
319
321
  }
320
322
  if (addFirst) {
321
- config.config.semantics.unshift(semantic)
323
+ config.config.semantics.unshift(addUUID(semantic))
322
324
  } else {
323
- config.config.semantics.push(semantic)
325
+ config.config.semantics.push(addUUID(semantic))
324
326
  }
325
327
  }
326
328
  if (bridge.semantic) {
@@ -332,9 +334,9 @@ const handleBridgeProps = (config, bridge, addFirst) => {
332
334
  property: 'semantic'
333
335
  }
334
336
  if (addFirst) {
335
- config.config.semantics.unshift(semantic)
337
+ config.config.semantics.unshift(addUUID(semantic))
336
338
  } else {
337
- config.config.semantics.push(semantic)
339
+ config.config.semantics.push(addUUID(semantic))
338
340
  }
339
341
  }
340
342
  }
@@ -511,6 +513,12 @@ function applyUUID (config, uuid) {
511
513
  if (config.bridges) {
512
514
  config.bridges = config.bridges.map((o) => Object.assign(o, { uuid }))
513
515
  }
516
+ if (config.generators) {
517
+ config.generators = config.generators.map((o) => Object.assign(o, { uuid }))
518
+ }
519
+ if (config.semantics) {
520
+ config.semantics = config.semantics.map((o) => Object.assign(o, { uuid }))
521
+ }
514
522
  if (config.words) {
515
523
  setWordsUUIDs(config.words, uuid)
516
524
  }
@@ -1097,6 +1105,7 @@ class Config {
1097
1105
  if (!helpers.safeEquals(templateQueries[iq], instanceQueries[iq])) {
1098
1106
  sameQueries = false
1099
1107
  startOfChanges = iq
1108
+ break;
1100
1109
  }
1101
1110
  }
1102
1111
 
@@ -1114,10 +1123,6 @@ class Config {
1114
1123
 
1115
1124
  if (debug) {
1116
1125
  if (!(instance && sameQueries && sameFragments)) {
1117
- if (!sameQueries) {
1118
- debugger
1119
- debugger
1120
- }
1121
1126
  // console.log("instance", instance)
1122
1127
  console.log('sameQueries', sameQueries)
1123
1128
  console.log('sameFragments', sameFragments)
@@ -1737,6 +1742,15 @@ class Config {
1737
1742
  this.addedArgss.push(moreArgs)
1738
1743
  }
1739
1744
 
1745
+ stop_auto_rebuild() {
1746
+ this._stop_auto_rebuild = true
1747
+ }
1748
+
1749
+ restart_auto_rebuild() {
1750
+ this._stop_auto_rebuild = false
1751
+ this.rebuild()
1752
+ }
1753
+
1740
1754
  getAddedArgs (args) {
1741
1755
  for (let addedArgs of this.addedArgss) {
1742
1756
  addedArgs = addedArgs(args)
@@ -2245,6 +2259,9 @@ class Config {
2245
2259
 
2246
2260
  // rebuild ({ isModule: mainIsModule = false } = {}) {
2247
2261
  rebuild ({ isModule: mainIsModule } = {}) {
2262
+ if (this._stop_auto_rebuild) {
2263
+ return
2264
+ }
2248
2265
  this.resetDelta()
2249
2266
  const debug = this.config.debug
2250
2267
  this.config = _.cloneDeep(this.initConfig)
@@ -2741,63 +2758,70 @@ class Config {
2741
2758
  }
2742
2759
  }
2743
2760
 
2744
- add (more) {
2745
- if (more === this) {
2746
- throw new Error('Cannot add an object to itself.')
2747
- }
2748
- if (!(more instanceof Config)) {
2749
- more = new Config(more)
2750
- }
2761
+ add (...mores) {
2762
+ mores.forEach((km) => {
2763
+ if (km === this) {
2764
+ throw new Error('Cannot add an object to itself.')
2765
+ }
2766
+ })
2751
2767
 
2752
- this.valid()
2753
- more.valid()
2754
- // copy so i don't have to copy later
2755
- more = more.copy()
2756
- more.server(this._server, this._key, this._queryParams)
2757
-
2758
- this.loadOrder.addList(more.configs.map((km) => km.name || km.uuid))
2759
-
2760
- // get the new ones
2761
- // remove the dups
2762
- // run the initialize one all new ones
2763
- // this.configs = this.configs.concat(new KM({config: more}));
2764
- // only set for the first one the rest have it set
2765
- const namespace = this._namespace.concat(more._namespace)
2766
- const moreKMs1 = [new KM({ config: more, getCounter: (name) => this.getCounter(name), uuid: more.uuid, namespace })]
2767
- const moreKMs2 = more.configs.slice(1).map((km) => {
2768
+ mores.map((km) => {
2769
+ if (!(km instanceof Config)) {
2770
+ km = new Config(km)
2771
+ }
2768
2772
  return km
2769
- // const cp = km.copy()
2770
- // cp.namespace = namespace
2771
- // return cp;
2772
2773
  })
2773
- const moreKMs = moreKMs1.concat(moreKMs2)
2774
- const eqClass = moreKMs.map((km) => km.uuid)
2775
- this._eqClasses.push(eqClass)
2776
- // look for dups and combine them with the eqclasses
2777
- for (const moreKM of moreKMs) {
2778
- const existingKM = this.configs.find((km) => moreKM._name && km.name === moreKM.name)
2779
- if (existingKM) {
2780
- this.addEqClass(existingKM, moreKM)
2781
- } else {
2782
- this.configs.push(moreKM)
2774
+
2775
+ mores.forEach((more) => {
2776
+ this.valid()
2777
+ more.valid()
2778
+ // copy so i don't have to copy later
2779
+ more = more.copy()
2780
+ more.server(this._server, this._key, this._queryParams)
2781
+
2782
+ this.loadOrder.addList(more.configs.map((km) => km.name || km.uuid))
2783
+
2784
+ // get the new ones
2785
+ // remove the dups
2786
+ // run the initialize one all new ones
2787
+ // this.configs = this.configs.concat(new KM({config: more}));
2788
+ // only set for the first one the rest have it set
2789
+ const namespace = this._namespace.concat(more._namespace)
2790
+ const moreKMs1 = [new KM({ config: more, getCounter: (name) => this.getCounter(name), uuid: more.uuid, namespace })]
2791
+ const moreKMs2 = more.configs.slice(1).map((km) => {
2792
+ return km
2793
+ // const cp = km.copy()
2794
+ // cp.namespace = namespace
2795
+ // return cp;
2796
+ })
2797
+ const moreKMs = moreKMs1.concat(moreKMs2)
2798
+ const eqClass = moreKMs.map((km) => km.uuid)
2799
+ this._eqClasses.push(eqClass)
2800
+ // look for dups and combine them with the eqclasses
2801
+ for (const moreKM of moreKMs) {
2802
+ const existingKM = this.configs.find((km) => moreKM._name && km.name === moreKM.name)
2803
+ if (existingKM) {
2804
+ this.addEqClass(existingKM, moreKM)
2805
+ } else {
2806
+ this.configs.push(moreKM)
2807
+ }
2783
2808
  }
2784
- }
2785
- more.resetToOne()
2786
- this.config.eqClasses = this._eqClasses
2787
- // greg
2788
- // setup instances
2789
- this.instances = []
2790
- this.configs.forEach((km) => {
2791
- this.instances = (km._config.instances || this.initInstances.slice()).concat(this.instances)
2792
- })
2793
- const noDups = []
2794
- for (const instance of this.instances) {
2795
- if (!noDups.find((existing) => existing.name == instance.name)) {
2796
- noDups.push(instance)
2809
+ more.resetToOne()
2810
+ this.config.eqClasses = this._eqClasses
2811
+ // greg
2812
+ // setup instances
2813
+ this.instances = []
2814
+ this.configs.forEach((km) => {
2815
+ this.instances = (km._config.instances || this.initInstances.slice()).concat(this.instances)
2816
+ })
2817
+ const noDups = []
2818
+ for (const instance of this.instances) {
2819
+ if (!noDups.find((existing) => existing.name == instance.name)) {
2820
+ noDups.push(instance)
2821
+ }
2797
2822
  }
2798
- }
2799
- this.instances = noDups
2800
-
2823
+ this.instances = noDups
2824
+ })
2801
2825
  this.rebuild()
2802
2826
  this.valid()
2803
2827
  return this