Added component orchestrator feature to register skill components and manage them on runtime.
Motivation and Context
When consuming components in a IM skill there is a very possible chance of having conflicts of utterances which can be handled by the component or by the skill or by multiple components at the same time. For example a simple intent like YesIntent can be used by a skill developer on of their own multi turn skill experience and the same intent can also be used by a component like Catalog Explorer when providing some hint to the user and expecting user to say yes to the request.
The component orchestrator solves this problem by managing the focus state of components and a registry of all the components registered in the skill.
Testing
Created a test component with some utterances conflicting with the handlers registered for the skill as well. The component orchestrator was able to route the request to suitable handler based on the situation.
Types of changes
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs(Add new document content)
[ ] Translate Docs(Translate document content)
Checklist
[x] My code follows the code style of this project
[ ] My change requires a change to the documentation
Description
Added component orchestrator feature to register skill components and manage them on runtime.
Motivation and Context
When consuming components in a IM skill there is a very possible chance of having conflicts of utterances which can be handled by the component or by the skill or by multiple components at the same time. For example a simple intent like
YesIntent
can be used by a skill developer on of their own multi turn skill experience and the same intent can also be used by a component like Catalog Explorer when providing some hint to the user and expecting user to say yes to the request.The component orchestrator solves this problem by managing the focus state of components and a registry of all the components registered in the skill.
Testing
Created a test component with some utterances conflicting with the handlers registered for the skill as well. The component orchestrator was able to route the request to suitable handler based on the situation.
Types of changes
Checklist
License