theprogrammablemind_4wp 7.6.0-beta.4 → 7.6.0-beta.6
Sign up to get free protection for your applications and to get access to all the features.
- package/client.js +51 -13
- package/package.json +1 -1
- package/runtime.js +1 -0
- package/src/flatten.js +3 -0
- package/src/project.js +0 -1
package/client.js
CHANGED
@@ -660,6 +660,7 @@ const _process = async (config, query, { initializer, commandLineArgs, credentia
|
|
660
660
|
opChoices: []
|
661
661
|
},
|
662
662
|
times: 0.0,
|
663
|
+
clientSideTimes: 0.0,
|
663
664
|
trace: '',
|
664
665
|
contexts: [],
|
665
666
|
generated: [],
|
@@ -701,8 +702,16 @@ const _process = async (config, query, { initializer, commandLineArgs, credentia
|
|
701
702
|
if (json.status !== 200) {
|
702
703
|
throw json
|
703
704
|
} else {
|
705
|
+
let clientSideTime
|
706
|
+
if (isTest) {
|
707
|
+
start = runtime.performance.performance.now()
|
708
|
+
}
|
704
709
|
const { contextsPrime, generatedPrime, paraphrasesPrime, paraphrasesParenthesizedPrime, generatedParenthesizedPrime, responsesPrime } =
|
705
710
|
processContextsB({ isTest, config, hierarchy, json, commandLineArgs /*, generators, semantics */ })
|
711
|
+
if (isTest) {
|
712
|
+
end = runtime.performance.performance.now()
|
713
|
+
clientSideTime = end - start
|
714
|
+
}
|
706
715
|
response.associations = json.associations
|
707
716
|
response.learned_contextual_priorities = json.learned_contextual_priorities
|
708
717
|
response.hierarchy = json.hierarchy
|
@@ -713,6 +722,7 @@ const _process = async (config, query, { initializer, commandLineArgs, credentia
|
|
713
722
|
// appendNoDups(response.metadata.priorities, json.metadata.priorities)
|
714
723
|
appendNoDups(response.metadata.opChoices, json.metadata.opChoices)
|
715
724
|
response.times += json.times
|
725
|
+
response.clientSideTimes += clientSideTime
|
716
726
|
response.trace = response.trace.concat(json.trace)
|
717
727
|
response.version = json.version
|
718
728
|
response.explain_priorities = json.explain_priorities
|
@@ -802,10 +812,10 @@ const runTest = async (config, expected, { args, verbose, testConfig, debug }) =
|
|
802
812
|
defaultInnerProcess(config, errorHandler, result)
|
803
813
|
}
|
804
814
|
if (verbose) {
|
805
|
-
const widths = [100,
|
815
|
+
const widths = [100, 60]
|
806
816
|
const lines = new Lines(widths)
|
807
817
|
lines.setElement(0, 0, test)
|
808
|
-
lines.setElement(0, 1, `time on server ${result.times.toFixed(2)}`)
|
818
|
+
lines.setElement(0, 1, `time on server: ${result.times.toFixed(2)} client: ${(result.clientSideTimes/1000).toFixed(2)}`)
|
809
819
|
lines.log()
|
810
820
|
}
|
811
821
|
const expected_objects = sortJson(convertToStable(expected.objects), { depth: 25 })
|
@@ -1323,6 +1333,7 @@ const rebuildTemplate = async ({ config, target, template, errorHandler = defaul
|
|
1323
1333
|
} else {
|
1324
1334
|
delete result.load_cache_time
|
1325
1335
|
delete result.times
|
1336
|
+
delete result.clientSideTimes
|
1326
1337
|
delete result.memory_free_percent
|
1327
1338
|
delete result.logs
|
1328
1339
|
delete result.version
|
@@ -1362,6 +1373,28 @@ const rebuildTemplate = async ({ config, target, template, errorHandler = defaul
|
|
1362
1373
|
await looper(Object.assign([], todo))
|
1363
1374
|
}
|
1364
1375
|
|
1376
|
+
const checkTemplate = (template) => {
|
1377
|
+
return
|
1378
|
+
if (!template) {
|
1379
|
+
return
|
1380
|
+
}
|
1381
|
+
if (template.checks) {
|
1382
|
+
throw new Error("The 'checks' property should be in the 'test' property not the 'template' property")
|
1383
|
+
}
|
1384
|
+
}
|
1385
|
+
|
1386
|
+
const checkTest = (testConfig) => {
|
1387
|
+
if (!testConfig) {
|
1388
|
+
return
|
1389
|
+
}
|
1390
|
+
if (!testConfig.name) {
|
1391
|
+
throw new Error("The 'test' property is missing the 'name' property that contains the name of the '<km>.test.json' file")
|
1392
|
+
}
|
1393
|
+
if (!testConfig.contents) {
|
1394
|
+
throw new Error("The 'test' property is missing the 'contents' property that contains contents of the '<km>.test.json' file")
|
1395
|
+
}
|
1396
|
+
}
|
1397
|
+
|
1365
1398
|
const knowledgeModule = async ({
|
1366
1399
|
module: moduleFromJSFile,
|
1367
1400
|
description,
|
@@ -1395,9 +1428,10 @@ const knowledgeModule = async ({
|
|
1395
1428
|
if (!description) {
|
1396
1429
|
throw new Error("'description' is a required parameter. The value should the description of the knowledge module.")
|
1397
1430
|
}
|
1398
|
-
if (!
|
1431
|
+
if (!testConfig) {
|
1399
1432
|
throw new Error("'test' is a required parameter. The value should the path to the file used to store the tests of the knowledge module and the contents of the file in the form { name: <filePath>, contexts: <json> }.")
|
1400
1433
|
}
|
1434
|
+
checkTest(testConfig)
|
1401
1435
|
|
1402
1436
|
const isProcess = require.main === moduleFromJSFile
|
1403
1437
|
|
@@ -1666,6 +1700,8 @@ const knowledgeModule = async ({
|
|
1666
1700
|
}
|
1667
1701
|
}
|
1668
1702
|
|
1703
|
+
checkTemplate(template)
|
1704
|
+
|
1669
1705
|
if (template) {
|
1670
1706
|
const needsRebuild = config.needsRebuild(template.template, template.instance, options)
|
1671
1707
|
if (needsRebuild) {
|
@@ -1674,7 +1710,9 @@ const knowledgeModule = async ({
|
|
1674
1710
|
config.config.rebuild = true
|
1675
1711
|
}
|
1676
1712
|
config.load(template.template, template.instance, { rebuild: needsRebuild })
|
1677
|
-
|
1713
|
+
if (!args.query) {
|
1714
|
+
printConfig()
|
1715
|
+
}
|
1678
1716
|
if (needsRebuild) {
|
1679
1717
|
return
|
1680
1718
|
}
|
@@ -1687,7 +1725,6 @@ const knowledgeModule = async ({
|
|
1687
1725
|
if (args.test || args.testVerbose || args.testAllVerbose || args.save) {
|
1688
1726
|
global.transitoryMode = true
|
1689
1727
|
}
|
1690
|
-
|
1691
1728
|
if (!args.query && !args.test && !args.info && (args.save || args.saveDeveloper)) {
|
1692
1729
|
global.transitoryMode = true
|
1693
1730
|
saveTests(config, test, testConfig, args.saveDeveloper)
|
@@ -1709,7 +1746,6 @@ const knowledgeModule = async ({
|
|
1709
1746
|
useTestConfig = config.getConfigs()[args.testModuleName].getTestConfig()
|
1710
1747
|
useTestConfig.testModuleName = args.testModuleName
|
1711
1748
|
test = useTestConfig.name
|
1712
|
-
|
1713
1749
|
}
|
1714
1750
|
runTests(config, test, { args, debug: args.debug, testConfig: useTestConfig, verbose: args.testVerbose || args.testAllVerbose, stopAtFirstError: !args.testAllVerbose }).then((results) => {
|
1715
1751
|
let newError = false
|
@@ -1827,16 +1863,18 @@ const knowledgeModule = async ({
|
|
1827
1863
|
}
|
1828
1864
|
}
|
1829
1865
|
}
|
1830
|
-
if (
|
1866
|
+
if (hasError) {
|
1867
|
+
if (!headerShown) {
|
1868
|
+
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1869
|
+
console.log('There are failures due to things other than paraphrases, responses and checked properties being different. They are not shown because you ran -tv or -tva which only shows difference in paraphrase and results. Usually what I do is -s and do a diff to make sure there are no other problems. If the paraphrases or results were different they would have shown here.')
|
1870
|
+
}
|
1871
|
+
}
|
1831
1872
|
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1832
|
-
console.log('
|
1873
|
+
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.')
|
1874
|
+
// console.log(JSON.stringify(contexts))
|
1875
|
+
console.log('**************************** ERRORS ************************')
|
1833
1876
|
}
|
1834
1877
|
}
|
1835
|
-
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1836
|
-
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.')
|
1837
|
-
// console.log(JSON.stringify(contexts))
|
1838
|
-
console.log('**************************** ERRORS ************************')
|
1839
|
-
}
|
1840
1878
|
}
|
1841
1879
|
// const contexts = { failures: results }
|
1842
1880
|
l(n - 1, hasError || newError)
|
package/package.json
CHANGED
package/runtime.js
CHANGED
package/src/flatten.js
CHANGED