theprogrammablemind_4wp 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