theprogrammablemind 7.12.3 → 7.12.4
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.
- package/client.js +39 -24
- package/package.json +1 -1
- package/src/config.js +71 -52
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
|
-
|
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) }
|
@@ -1464,6 +1466,7 @@ const knowledgeModuleImpl = async ({
|
|
1464
1466
|
errorHandler = defaultErrorHandler,
|
1465
1467
|
process: processResults = defaultProcess,
|
1466
1468
|
stopAtFirstFailure = true,
|
1469
|
+
acceptsAdditionalConfig = false,
|
1467
1470
|
...rest
|
1468
1471
|
} = {}) => {
|
1469
1472
|
/*
|
@@ -1843,34 +1846,33 @@ const knowledgeModuleImpl = async ({
|
|
1843
1846
|
if (results.length > 0) {
|
1844
1847
|
let headerShown = false
|
1845
1848
|
|
1846
|
-
let
|
1849
|
+
let hasError = false
|
1847
1850
|
for (const result of results) {
|
1848
|
-
let hasError = false
|
1849
1851
|
if (JSON.stringify(result.expected.paraphrases) !== JSON.stringify(result.actual.paraphrases)) {
|
1850
|
-
hasError = true
|
1852
|
+
result.hasError = true
|
1851
1853
|
}
|
1852
1854
|
if (!args.testNoParenthesized) {
|
1853
1855
|
if (JSON.stringify(result.expected.paraphrasesParenthesized) !== JSON.stringify(result.actual.paraphrasesParenthesized)) {
|
1854
|
-
hasError = true
|
1856
|
+
result.hasError = true
|
1855
1857
|
}
|
1856
1858
|
if (JSON.stringify(result.expected.generatedParenthesized) !== JSON.stringify(result.actual.generatedParenthesized)) {
|
1857
|
-
hasError = true
|
1859
|
+
result.hasError = true
|
1858
1860
|
}
|
1859
1861
|
}
|
1860
1862
|
if (JSON.stringify(result.expected.responses) !== JSON.stringify(result.actual.responses)) {
|
1861
|
-
hasError = true
|
1863
|
+
result.hasError = true
|
1862
1864
|
}
|
1863
1865
|
if (JSON.stringify(result.expected.checked) !== JSON.stringify(result.actual.checked)) {
|
1864
|
-
hasError = true
|
1866
|
+
result.hasError = true
|
1865
1867
|
}
|
1866
1868
|
if (!sameJSON(result.expected.checkedContexts, result.actual.checkedContexts)) {
|
1867
|
-
hasError = true
|
1869
|
+
result.hasError = true
|
1868
1870
|
}
|
1869
|
-
if (hasError) {
|
1870
|
-
|
1871
|
+
if (result.hasError) {
|
1872
|
+
hasError = true
|
1871
1873
|
}
|
1872
1874
|
}
|
1873
|
-
|
1875
|
+
|
1874
1876
|
if (hasError) {
|
1875
1877
|
console.log('**************************** ERRORS ************************')
|
1876
1878
|
for (const result of results) {
|
@@ -1885,21 +1887,20 @@ const knowledgeModuleImpl = async ({
|
|
1885
1887
|
newError = true
|
1886
1888
|
headerShown = true
|
1887
1889
|
if (args.vimdiff) {
|
1888
|
-
vimdiff(
|
1890
|
+
vimdiff(actual, expected, `"${result.utterance}" - ${label}`)
|
1889
1891
|
}
|
1890
|
-
|
1892
|
+
result.hasError = true
|
1891
1893
|
}
|
1892
1894
|
}
|
1893
1895
|
show('paraphrases', result.expected.paraphrases, result.actual.paraphrases)
|
1894
1896
|
if (!args.testNoParenthesized) {
|
1895
1897
|
show('paraphrases parenthesized', result.expected.paraphrasesParenthesized, result.actual.paraphrasesParenthesized)
|
1896
1898
|
}
|
1897
|
-
/*
|
1898
|
-
}
|
1899
1899
|
show('responses', result.expected.responses, result.actual.responses)
|
1900
1900
|
if (!args.testNoParenthesized) {
|
1901
1901
|
show('responses parenthesized', result.expected.generatedParenthesized, result.actual.generatedParenthesized)
|
1902
1902
|
}
|
1903
|
+
/*
|
1903
1904
|
if (JSON.stringify(result.expected.paraphrases) !== JSON.stringify(result.actual.paraphrases)) {
|
1904
1905
|
if (!headerShown) {
|
1905
1906
|
console.log(' Failure')
|
@@ -1972,7 +1973,13 @@ const knowledgeModuleImpl = async ({
|
|
1972
1973
|
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1973
1974
|
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
1975
|
// console.log(JSON.stringify(contexts))
|
1975
|
-
|
1976
|
+
let errorCount = 0
|
1977
|
+
for (const result of results) {
|
1978
|
+
if (result.hasError) {
|
1979
|
+
errorCount += 1
|
1980
|
+
}
|
1981
|
+
}
|
1982
|
+
console.log(`**************************** THERE WERE ${errorCount} TEST FAILURES ************************`)
|
1976
1983
|
}
|
1977
1984
|
}
|
1978
1985
|
}
|
@@ -2072,11 +2079,16 @@ const knowledgeModuleImpl = async ({
|
|
2072
2079
|
}
|
2073
2080
|
}
|
2074
2081
|
|
2075
|
-
createConfigExport = () => {
|
2082
|
+
createConfigExport = (additionalConfig) => {
|
2076
2083
|
if (createConfig.cached) {
|
2077
2084
|
return createConfig.cached
|
2078
2085
|
}
|
2079
|
-
const config = createConfig()
|
2086
|
+
const config = createConfig(acceptsAdditionalConfig ? additionalConfig : null)
|
2087
|
+
if (!acceptsAdditionalConfig && additionalConfig) {
|
2088
|
+
config.stop_auto_rebuild()
|
2089
|
+
additionalConfig(config)
|
2090
|
+
config.restart_auto_rebuild()
|
2091
|
+
}
|
2080
2092
|
initConfig(config)
|
2081
2093
|
// config.rebuild({ isModule: true })
|
2082
2094
|
createConfig.cached = config
|
@@ -2132,7 +2144,10 @@ function w (func) {
|
|
2132
2144
|
}
|
2133
2145
|
|
2134
2146
|
const knowledgeModule = async (...args) => {
|
2135
|
-
await knowledgeModuleImpl(...args).catch((e) =>
|
2147
|
+
await knowledgeModuleImpl(...args).catch((e) => {
|
2148
|
+
console.error(e)
|
2149
|
+
process.exit(-1)
|
2150
|
+
})
|
2136
2151
|
}
|
2137
2152
|
|
2138
2153
|
module.exports = {
|
package/package.json
CHANGED
package/src/config.js
CHANGED
@@ -1742,6 +1742,15 @@ class Config {
|
|
1742
1742
|
this.addedArgss.push(moreArgs)
|
1743
1743
|
}
|
1744
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
|
+
|
1745
1754
|
getAddedArgs (args) {
|
1746
1755
|
for (let addedArgs of this.addedArgss) {
|
1747
1756
|
addedArgs = addedArgs(args)
|
@@ -2250,6 +2259,9 @@ class Config {
|
|
2250
2259
|
|
2251
2260
|
// rebuild ({ isModule: mainIsModule = false } = {}) {
|
2252
2261
|
rebuild ({ isModule: mainIsModule } = {}) {
|
2262
|
+
if (this._stop_auto_rebuild) {
|
2263
|
+
return
|
2264
|
+
}
|
2253
2265
|
this.resetDelta()
|
2254
2266
|
const debug = this.config.debug
|
2255
2267
|
this.config = _.cloneDeep(this.initConfig)
|
@@ -2746,63 +2758,70 @@ class Config {
|
|
2746
2758
|
}
|
2747
2759
|
}
|
2748
2760
|
|
2749
|
-
add (
|
2750
|
-
|
2751
|
-
|
2752
|
-
|
2753
|
-
|
2754
|
-
|
2755
|
-
}
|
2761
|
+
add (...mores) {
|
2762
|
+
mores.forEach((km) => {
|
2763
|
+
if (km === this) {
|
2764
|
+
throw new Error('Cannot add an object to itself.')
|
2765
|
+
}
|
2766
|
+
})
|
2756
2767
|
|
2757
|
-
|
2758
|
-
|
2759
|
-
|
2760
|
-
|
2761
|
-
more.server(this._server, this._key, this._queryParams)
|
2762
|
-
|
2763
|
-
this.loadOrder.addList(more.configs.map((km) => km.name || km.uuid))
|
2764
|
-
|
2765
|
-
// get the new ones
|
2766
|
-
// remove the dups
|
2767
|
-
// run the initialize one all new ones
|
2768
|
-
// this.configs = this.configs.concat(new KM({config: more}));
|
2769
|
-
// only set for the first one the rest have it set
|
2770
|
-
const namespace = this._namespace.concat(more._namespace)
|
2771
|
-
const moreKMs1 = [new KM({ config: more, getCounter: (name) => this.getCounter(name), uuid: more.uuid, namespace })]
|
2772
|
-
const moreKMs2 = more.configs.slice(1).map((km) => {
|
2768
|
+
mores = mores.map((km) => {
|
2769
|
+
if (!(km instanceof Config)) {
|
2770
|
+
km = new Config(km)
|
2771
|
+
}
|
2773
2772
|
return km
|
2774
|
-
// const cp = km.copy()
|
2775
|
-
// cp.namespace = namespace
|
2776
|
-
// return cp;
|
2777
2773
|
})
|
2778
|
-
|
2779
|
-
|
2780
|
-
|
2781
|
-
|
2782
|
-
|
2783
|
-
|
2784
|
-
|
2785
|
-
|
2786
|
-
|
2787
|
-
|
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
|
+
}
|
2788
2808
|
}
|
2789
|
-
|
2790
|
-
|
2791
|
-
|
2792
|
-
|
2793
|
-
|
2794
|
-
|
2795
|
-
|
2796
|
-
|
2797
|
-
|
2798
|
-
|
2799
|
-
|
2800
|
-
|
2801
|
-
|
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
|
+
}
|
2802
2822
|
}
|
2803
|
-
|
2804
|
-
|
2805
|
-
|
2823
|
+
this.instances = noDups
|
2824
|
+
})
|
2806
2825
|
this.rebuild()
|
2807
2826
|
this.valid()
|
2808
2827
|
return this
|