An extension development suite for CognigyAI. Not affiliated with Cognigy or its subsidiaries.
Project seeks to eliminate the need of managing nodes dependencies and establish a standard for better development of CognigyAI extensions.
- Linux/macOS
- Git
- Node >= 18
- NPM >= 9
npm i -g cognigy-hammer
- CLI to easily create new project, nodes, connections.
- Nodes types and hierarchy are injected automatically based on directory structure.
- Connections and Nodes are imported automatically.
- Helper function for setting the next node.
The following commands should be available after installing the package globally. If they are not, you may need to use npm exec
/ npx
ch.create-project # create a new extension project scaffold
ch.create-node # create a new node in an extension project
ch.delete-node # delete a node from an extension project
ch.create-connection # create a new connection in an extension project
- Nodes are stored in
./src/nodes
- Connections are stored in
./src/connections
- Assets used at runtime are stored in
./src/assets
Each node can have N children nodes. The former are stored in a directory located at the same tree level as the parent.
src
├── assets
│ └── extension-map.js
├── connections
│ └── dbs
│ ├── Mongo.ts
│ └── MySQL.ts
└── nodes
├── Parent
│ ├── Child1.ts
│ ├── Child2
│ │ └── Child3.ts
│ └── Child2.ts
└── Parent.ts
- One parent node can have N child nodes.
- One parent node must not share its children nodes with other parent nodes. While CognigyAI chart supports this variant and other mixed ones, a custom implementation and/or directory scheme is required from development side for it, which is not in the scope of this package.
In above example, Parent1 and Parent2 cannot share the same Child2.