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