theprogrammablemind 7.12.3 → 7.12.4-beta.0
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 +61 -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) }
|
@@ -775,6 +777,7 @@ const _process = async (config, query, { initializer, commandLineArgs, credentia
|
|
775
777
|
response.trace = response.trace.concat(json.trace)
|
776
778
|
response.version = json.version
|
777
779
|
response.explain_priorities = json.explain_priorities
|
780
|
+
response.contextual_priorities_ambiguities = json.contextual_priorities_ambiguities
|
778
781
|
|
779
782
|
response.contexts = response.contexts.concat(contextsPrime)
|
780
783
|
response.generated = response.generated.concat(generatedPrime)
|
@@ -1153,6 +1156,24 @@ const defaultErrorHandler = async (error) => {
|
|
1153
1156
|
throw error
|
1154
1157
|
}
|
1155
1158
|
|
1159
|
+
const printContextualPrioritiesAmbiguities = (cpa) => {
|
1160
|
+
console.log('Contextual Priorities Ambiguities')
|
1161
|
+
for (const counter in cpa) {
|
1162
|
+
console.log(` Counter ${counter}`)
|
1163
|
+
for (const choices of cpa[counter]) {
|
1164
|
+
console.log(' [')
|
1165
|
+
for (const choice of choices) {
|
1166
|
+
console.log(' [')
|
1167
|
+
for (const element of choice) {
|
1168
|
+
console.log(` ${JSON.stringify(element)},`)
|
1169
|
+
}
|
1170
|
+
console.log(' ],')
|
1171
|
+
}
|
1172
|
+
console.log(' ],')
|
1173
|
+
}
|
1174
|
+
}
|
1175
|
+
}
|
1176
|
+
|
1156
1177
|
const defaultInnerProcess = (config, errorHandler, responses) => {
|
1157
1178
|
if (responses.errors) {
|
1158
1179
|
console.log('Errors')
|
@@ -1171,6 +1192,9 @@ const defaultInnerProcess = (config, errorHandler, responses) => {
|
|
1171
1192
|
console.log('Logs')
|
1172
1193
|
responses.logs.forEach((log) => console.log(` ${log}`))
|
1173
1194
|
}
|
1195
|
+
if (responses.contextual_priorities_ambiguities) {
|
1196
|
+
printContextualPrioritiesAmbiguities(responses.contextual_priorities_ambiguities)
|
1197
|
+
}
|
1174
1198
|
console.log(responses.trace)
|
1175
1199
|
|
1176
1200
|
if (global.beforeObjects) {
|
@@ -1464,6 +1488,7 @@ const knowledgeModuleImpl = async ({
|
|
1464
1488
|
errorHandler = defaultErrorHandler,
|
1465
1489
|
process: processResults = defaultProcess,
|
1466
1490
|
stopAtFirstFailure = true,
|
1491
|
+
acceptsAdditionalConfig = false,
|
1467
1492
|
...rest
|
1468
1493
|
} = {}) => {
|
1469
1494
|
/*
|
@@ -1843,34 +1868,33 @@ const knowledgeModuleImpl = async ({
|
|
1843
1868
|
if (results.length > 0) {
|
1844
1869
|
let headerShown = false
|
1845
1870
|
|
1846
|
-
let
|
1871
|
+
let hasError = false
|
1847
1872
|
for (const result of results) {
|
1848
|
-
let hasError = false
|
1849
1873
|
if (JSON.stringify(result.expected.paraphrases) !== JSON.stringify(result.actual.paraphrases)) {
|
1850
|
-
hasError = true
|
1874
|
+
result.hasError = true
|
1851
1875
|
}
|
1852
1876
|
if (!args.testNoParenthesized) {
|
1853
1877
|
if (JSON.stringify(result.expected.paraphrasesParenthesized) !== JSON.stringify(result.actual.paraphrasesParenthesized)) {
|
1854
|
-
hasError = true
|
1878
|
+
result.hasError = true
|
1855
1879
|
}
|
1856
1880
|
if (JSON.stringify(result.expected.generatedParenthesized) !== JSON.stringify(result.actual.generatedParenthesized)) {
|
1857
|
-
hasError = true
|
1881
|
+
result.hasError = true
|
1858
1882
|
}
|
1859
1883
|
}
|
1860
1884
|
if (JSON.stringify(result.expected.responses) !== JSON.stringify(result.actual.responses)) {
|
1861
|
-
hasError = true
|
1885
|
+
result.hasError = true
|
1862
1886
|
}
|
1863
1887
|
if (JSON.stringify(result.expected.checked) !== JSON.stringify(result.actual.checked)) {
|
1864
|
-
hasError = true
|
1888
|
+
result.hasError = true
|
1865
1889
|
}
|
1866
1890
|
if (!sameJSON(result.expected.checkedContexts, result.actual.checkedContexts)) {
|
1867
|
-
hasError = true
|
1891
|
+
result.hasError = true
|
1868
1892
|
}
|
1869
|
-
if (hasError) {
|
1870
|
-
|
1893
|
+
if (result.hasError) {
|
1894
|
+
hasError = true
|
1871
1895
|
}
|
1872
1896
|
}
|
1873
|
-
|
1897
|
+
|
1874
1898
|
if (hasError) {
|
1875
1899
|
console.log('**************************** ERRORS ************************')
|
1876
1900
|
for (const result of results) {
|
@@ -1885,21 +1909,20 @@ const knowledgeModuleImpl = async ({
|
|
1885
1909
|
newError = true
|
1886
1910
|
headerShown = true
|
1887
1911
|
if (args.vimdiff) {
|
1888
|
-
vimdiff(
|
1912
|
+
vimdiff(actual, expected, `"${result.utterance}" - ${label}`)
|
1889
1913
|
}
|
1890
|
-
|
1914
|
+
result.hasError = true
|
1891
1915
|
}
|
1892
1916
|
}
|
1893
1917
|
show('paraphrases', result.expected.paraphrases, result.actual.paraphrases)
|
1894
1918
|
if (!args.testNoParenthesized) {
|
1895
1919
|
show('paraphrases parenthesized', result.expected.paraphrasesParenthesized, result.actual.paraphrasesParenthesized)
|
1896
1920
|
}
|
1897
|
-
/*
|
1898
|
-
}
|
1899
1921
|
show('responses', result.expected.responses, result.actual.responses)
|
1900
1922
|
if (!args.testNoParenthesized) {
|
1901
1923
|
show('responses parenthesized', result.expected.generatedParenthesized, result.actual.generatedParenthesized)
|
1902
1924
|
}
|
1925
|
+
/*
|
1903
1926
|
if (JSON.stringify(result.expected.paraphrases) !== JSON.stringify(result.actual.paraphrases)) {
|
1904
1927
|
if (!headerShown) {
|
1905
1928
|
console.log(' Failure')
|
@@ -1972,7 +1995,13 @@ const knowledgeModuleImpl = async ({
|
|
1972
1995
|
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1973
1996
|
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
1997
|
// console.log(JSON.stringify(contexts))
|
1975
|
-
|
1998
|
+
let errorCount = 0
|
1999
|
+
for (const result of results) {
|
2000
|
+
if (result.hasError) {
|
2001
|
+
errorCount += 1
|
2002
|
+
}
|
2003
|
+
}
|
2004
|
+
console.log(`**************************** THERE WERE ${errorCount} TEST FAILURES ************************`)
|
1976
2005
|
}
|
1977
2006
|
}
|
1978
2007
|
}
|
@@ -2072,11 +2101,16 @@ const knowledgeModuleImpl = async ({
|
|
2072
2101
|
}
|
2073
2102
|
}
|
2074
2103
|
|
2075
|
-
createConfigExport = () => {
|
2104
|
+
createConfigExport = (additionalConfig) => {
|
2076
2105
|
if (createConfig.cached) {
|
2077
2106
|
return createConfig.cached
|
2078
2107
|
}
|
2079
|
-
const config = createConfig()
|
2108
|
+
const config = createConfig(acceptsAdditionalConfig ? additionalConfig : null)
|
2109
|
+
if (!acceptsAdditionalConfig && additionalConfig) {
|
2110
|
+
config.stop_auto_rebuild()
|
2111
|
+
additionalConfig(config)
|
2112
|
+
config.restart_auto_rebuild()
|
2113
|
+
}
|
2080
2114
|
initConfig(config)
|
2081
2115
|
// config.rebuild({ isModule: true })
|
2082
2116
|
createConfig.cached = config
|
@@ -2132,7 +2166,10 @@ function w (func) {
|
|
2132
2166
|
}
|
2133
2167
|
|
2134
2168
|
const knowledgeModule = async (...args) => {
|
2135
|
-
await knowledgeModuleImpl(...args).catch((e) =>
|
2169
|
+
await knowledgeModuleImpl(...args).catch((e) => {
|
2170
|
+
console.error(e)
|
2171
|
+
process.exit(-1)
|
2172
|
+
})
|
2136
2173
|
}
|
2137
2174
|
|
2138
2175
|
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
|