Context and branching for chatbot conversations (with Hubot).
Important
Playbook works best with a custom fork of hubot that adds promises to middleware - hubot async - which allows async features. Hopefully in later versions of hubot, async will be supported and Playbook can be used with any version from then on.
Usage & Development
-
Read the docs to get an understanding of Playbook modules and their methods.
-
See basic examples in the integration scripts, the outcomes of are tested here.
-
See advanced examples in the main Playbook module tests here.
Tests are run with Hubot Pretend
TODO
Fixes
- Write tests for Outline module
- Replace hoooker package with middleware pattern for scene enter etc
- Queue dialogue.receive calls to ensure messages process synchronously
- Optional config for send middleware to throttle hearing consecutive res
- Display "thinking" ellipses (emit event for use by adapters)
Docs
- Update integration tests to with unique listeners so all can be loaded at once
- Write usage examples as integration tests, with inline doc comments
- Generate usage guide docs from integration tests with annotated source
- Example setup steps for a Playbook bot without development requirements
- Add npm script to start a hubot and interact with usage examples in shell
- Contributor docs with npm script examples and commitizen ettiquite
- Make interactive demo bots, illustrating features and data inspection
Features
- Add timing module to rate limit and schedule sends
- Integrate enter/path/branch listeners with Conditioner for semantic matchers
- Add integration tests with external-scripts and adapters (e.g. shell/irc)
- Helpers for adapter UI payloads, for buttons and cards in messenger etc
- NLP for path matching on intent params with rasa.ai
- Translate sent strings and match terms with i18n-node