theprogrammablemind 7.6.0-beta.5 → 7.6.0-beta.6
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 +48 -12
- package/package.json +1 -1
- package/runtime.js +1 -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) {
|
@@ -1689,7 +1725,6 @@ const knowledgeModule = async ({
|
|
1689
1725
|
if (args.test || args.testVerbose || args.testAllVerbose || args.save) {
|
1690
1726
|
global.transitoryMode = true
|
1691
1727
|
}
|
1692
|
-
|
1693
1728
|
if (!args.query && !args.test && !args.info && (args.save || args.saveDeveloper)) {
|
1694
1729
|
global.transitoryMode = true
|
1695
1730
|
saveTests(config, test, testConfig, args.saveDeveloper)
|
@@ -1711,7 +1746,6 @@ const knowledgeModule = async ({
|
|
1711
1746
|
useTestConfig = config.getConfigs()[args.testModuleName].getTestConfig()
|
1712
1747
|
useTestConfig.testModuleName = args.testModuleName
|
1713
1748
|
test = useTestConfig.name
|
1714
|
-
|
1715
1749
|
}
|
1716
1750
|
runTests(config, test, { args, debug: args.debug, testConfig: useTestConfig, verbose: args.testVerbose || args.testAllVerbose, stopAtFirstError: !args.testAllVerbose }).then((results) => {
|
1717
1751
|
let newError = false
|
@@ -1829,16 +1863,18 @@ const knowledgeModule = async ({
|
|
1829
1863
|
}
|
1830
1864
|
}
|
1831
1865
|
}
|
1832
|
-
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
|
+
}
|
1833
1872
|
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1834
|
-
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 ************************')
|
1835
1876
|
}
|
1836
1877
|
}
|
1837
|
-
if (!(useTestConfig.check && useTestConfig.check.length > 0)) {
|
1838
|
-
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.')
|
1839
|
-
// console.log(JSON.stringify(contexts))
|
1840
|
-
console.log('**************************** ERRORS ************************')
|
1841
|
-
}
|
1842
1878
|
}
|
1843
1879
|
// const contexts = { failures: results }
|
1844
1880
|
l(n - 1, hasError || newError)
|
package/package.json
CHANGED
package/runtime.js
CHANGED