This is a folder linking all the codes related to the Hey Catena! (CX Knowledge Agents) User Experience product.
It consists of
- Skill Framework library to build Apps that interact with Hey Catena! and keep conversational state.
- Skill Modules a set of UI components which allow an ad-hoc and speech-oriented interaction with Hey Catena! The Skill Modules use the Skill Framework.
- Skill Gym an application which allows to define and test new skills for Hey Catena! The Skill Gym uses the Skill Framework and the Skill Modules
- see copyright notice in the top folder
- see license file in the top folder
- see authors file in the top folder
The CX KA UX is built in node/typescript. The UI part is built using react. The testing is done via jest.
-
See this guide on how we setup node in this folder.
-
See this guide on how we setup jest in this folder.
At the moment the skill_gym is calling the skill_modules locally and the skill_modules implements the skill_framework. Normally the skill_modules would be built and published as a package and implemented as external npm package inside the skill_gym. To make the development progress more easy, we are linking the skill_framework and the skill_modules via npm link commands, so that those packages can be used locally. This is automatically happening when using the command:
npm run init:dev
After this happends, you can start the React app with:
npm run start:skillgym
If you want to make changes inside the skill_gym, the server will notice those changes automatically. But if you will make changes inside the skill_modules you need to build the library again with:
npm run build:skillm
The server not always notices this change automatically, in order to show the recent changes. If this happens just reload the page again.
Running the unit tests can be done by invoking the following command. When no environment variables are set, the tests will run against the default (mock) backend. If you want to run the tests against a real backend (development or integration), please have a look at the Skill Framework Documentation
npm run test
To enforce some coding conventions, we are using eslint and prettier. This rules are integrated to Github Actions and will be checked automatically, when pushing code to the repo. If you are working with VS Code, we are highly recommend you to install the following packages:
Those packages will help your IDE to identify errors and warnings. If you like to enable automatic linter fixes onSave in VS Code you can add the following rules in your settings.json:
"editor.formatOnSaveMode": "modificationsIfAvailable",
"editor.codeActionsOnSave": {
"source.fixAll": true
},
Additionally you can run the linter script to check, if you have errors or warnings inside your code:
npm run lint
If the linter shows you errors and warnings, that can be fixed automatically run this command:
npm run lint:fix
...in order to let the engine fix the code for you.