diff --git a/README.md b/README.md index d6d07e0..758dfe9 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,10 @@ pip install ovos-skill-mark1-ctrl * "look up and down" * "reset enclosure" -* "narrow your eyes" -* "spin your eyes" -* "blink your eyes" +* "narrow eyes" +* "spin eyes" +* "blink" +* "blink left" * "smile animation" * "listen animation" diff --git a/__init__.py b/__init__.py index 57ffac6..1009d8b 100644 --- a/__init__.py +++ b/__init__.py @@ -6,7 +6,6 @@ from ovos_utils.log import LOG from ovos_utils.process_utils import RuntimeRequirements from ovos_workshop.decorators import intent_handler -from ovos_workshop.intents import IntentBuilder from ovos_workshop.skills import OVOSSkill from ovos_bus_client.message import Message from ovos_i2c_detection import is_mark_1 @@ -156,113 +155,88 @@ def play_animation(self, animation=None): self.animations = animation self.thread = create_daemon(self.run) - @intent_handler(IntentBuilder("EnclosureLookRight") - .require("look").require("right") - .optionally("enclosure")) + @intent_handler("look_right.intent") def handle_look_right(self, message): self.speak("looking right") self.enclosure.eyes_look("r") - @intent_handler(IntentBuilder("EnclosureLookLeft") - .require("look").require("left").optionally("enclosure")) + @intent_handler("look_left.intent") def handle_look_left(self, message): self.speak("looking left") self.enclosure.eyes_look("l") - @intent_handler(IntentBuilder("EnclosureLookUp") - .require("look").require("up").optionally("enclosure")) + @intent_handler("look_up.intent") def handle_look_up(self, message): self.speak("looking up") self.enclosure.eyes_look("u") - @intent_handler(IntentBuilder("EnclosureLookDown") - .require("look").require("down").optionally("enclosure")) + @intent_handler("look_down.intent") def handle_look_down(self, message): self.speak("looking down") self.enclosure.eyes_look("d") - @intent_handler(IntentBuilder("EnclosureLookUpDown") - .require("look").require("up") - .require("down").optionally("enclosure") - .optionally("animation")) + @intent_handler("look_up_down.intent") def handle_look_up_down(self, message): self.speak("up and down, up and down") self.play_animation(self.up_down_animation) - @intent_handler(IntentBuilder("EnclosureLookLeftRight") - .require("look").require("right") - .require("left").optionally("enclosure") - .optionally("animation")) + @intent_handler("look_left_right.intent") def handle_look_left_right(self, message): self.speak("left and right, left and right") self.play_animation(self.left_right_animation) - @intent_handler(IntentBuilder("EnclosureEyesBlink") - .require("blink") - .optionally("eyes").optionally("animation") - .optionally("enclosure").optionally("right") - .optionally("left")) + @intent_handler("blink.intent") def handle_blink_eyes(self, message): + """ Blink the eyes, optionally in just one direction. + + Args: + message (Message): carries an optional {direction} slot + ("left"/"right"); absent means blink both eyes. + """ + direction = message.data.get("direction") for i in range(0, 10): - if "right" in message.data: + if direction == "right": self.enclosure.eyes_blink("r") - if "left" in message.data: + elif direction == "left": self.enclosure.eyes_blink("l") else: self.enclosure.eyes_blink("b") self.speak("so this is what it feels like having low F P S") - @intent_handler(IntentBuilder("EnclosureEyesSpin") - .require("spin") - .optionally("eyes").optionally("animation") - .optionally("enclosure")) + @intent_handler("spin.intent") def handle_spin_eyes(self, message): self.speak("around the world, here i go") self.enclosure.eyes_spin() - @intent_handler(IntentBuilder("EnclosureEyesNarrow") - .require("narrow").require("eyes") - .optionally("enclosure")) + @intent_handler("narrow_eyes.intent") def handle_narrow_eyes(self, message): self.speak("this is my evil face") self.enclosure.eyes_narrow() self.enclosure.eyes_color(255, 0, 0) - @intent_handler(IntentBuilder("EnclosureReset") - .require("reset").require("enclosure")) + @intent_handler("reset.intent") def handle_enclosure_reset(self, message): self.handle_default_eyes() self.enclosure.eyes_reset() self.enclosure.mouth_reset() self.speak("this was fun") - @intent_handler(IntentBuilder("EnclosureMouthSmile") - .require("smile") - .optionally("animation").optionally("mouth") - .optionally("enclosure")) + @intent_handler("smile.intent") def handle_enclosure_smile(self, message): self.enclosure.mouth_smile() self.speak("i don't know how to smile") - @intent_handler(IntentBuilder("EnclosureMouthListen") - .require("listen") - .optionally("animation").optionally("mouth") - .optionally("enclosure")) + @intent_handler("listen.intent") def handle_enclosure_listen(self, message): self.speak("when i do this i feel like I'm dancing") self.enclosure.mouth_listen() - @intent_handler(IntentBuilder("EnclosureMouthThink") - .require("think") - .optionally("animation").optionally("mouth") - .optionally("enclosure")) + @intent_handler("think.intent") def handle_enclosure_think(self, message): self.speak("i love thinking") self.enclosure.mouth_think() - @intent_handler(IntentBuilder("EnclosureCrazyEyes") - .require("eyes").optionally("animation").require("crazy") - .optionally("enclosure")) + @intent_handler("crazy_eyes.intent") def handle_enclosure_crazy_eyes(self, message): self.speak("artificial intelligence performing artificial " "stupidity, you don't see this every day") diff --git a/locale/en-US/blink.intent b/locale/en-US/blink.intent new file mode 100644 index 0000000..d179b8d --- /dev/null +++ b/locale/en-US/blink.intent @@ -0,0 +1 @@ +blink [{direction}] [] [] [] diff --git a/locale/en-US/blink.voc b/locale/en-US/blink.voc deleted file mode 100644 index 647107e..0000000 --- a/locale/en-US/blink.voc +++ /dev/null @@ -1 +0,0 @@ -blink \ No newline at end of file diff --git a/locale/en-US/crazy.voc b/locale/en-US/crazy.voc deleted file mode 100644 index 85109f9..0000000 --- a/locale/en-US/crazy.voc +++ /dev/null @@ -1 +0,0 @@ -crazy \ No newline at end of file diff --git a/locale/en-US/crazy_eyes.intent b/locale/en-US/crazy_eyes.intent new file mode 100644 index 0000000..360f49a --- /dev/null +++ b/locale/en-US/crazy_eyes.intent @@ -0,0 +1 @@ +crazy [] [] diff --git a/locale/en-US/direction.entity b/locale/en-US/direction.entity new file mode 100644 index 0000000..ffa2cab --- /dev/null +++ b/locale/en-US/direction.entity @@ -0,0 +1,2 @@ +right +left diff --git a/locale/en-US/down.voc b/locale/en-US/down.voc deleted file mode 100644 index d00e753..0000000 --- a/locale/en-US/down.voc +++ /dev/null @@ -1 +0,0 @@ -down \ No newline at end of file diff --git a/locale/en-US/left.voc b/locale/en-US/left.voc deleted file mode 100644 index d75e9e5..0000000 --- a/locale/en-US/left.voc +++ /dev/null @@ -1 +0,0 @@ -left \ No newline at end of file diff --git a/locale/en-US/listen.intent b/locale/en-US/listen.intent new file mode 100644 index 0000000..84b3bd9 --- /dev/null +++ b/locale/en-US/listen.intent @@ -0,0 +1 @@ + [] [mouth] [] diff --git a/locale/en-US/look_down.intent b/locale/en-US/look_down.intent new file mode 100644 index 0000000..e74db33 --- /dev/null +++ b/locale/en-US/look_down.intent @@ -0,0 +1,2 @@ + down [] +down [] diff --git a/locale/en-US/look_left.intent b/locale/en-US/look_left.intent new file mode 100644 index 0000000..21faa8e --- /dev/null +++ b/locale/en-US/look_left.intent @@ -0,0 +1,2 @@ + left [] +left [] diff --git a/locale/en-US/look_left_right.intent b/locale/en-US/look_left_right.intent new file mode 100644 index 0000000..041a4ee --- /dev/null +++ b/locale/en-US/look_left_right.intent @@ -0,0 +1,2 @@ + left [and] right [] [] +left right [] [] diff --git a/locale/en-US/look_right.intent b/locale/en-US/look_right.intent new file mode 100644 index 0000000..0685022 --- /dev/null +++ b/locale/en-US/look_right.intent @@ -0,0 +1,2 @@ + right [] +right [] diff --git a/locale/en-US/look_up.intent b/locale/en-US/look_up.intent new file mode 100644 index 0000000..d5e82f7 --- /dev/null +++ b/locale/en-US/look_up.intent @@ -0,0 +1,2 @@ + up [] +up [] diff --git a/locale/en-US/look_up_down.intent b/locale/en-US/look_up_down.intent new file mode 100644 index 0000000..5de3be8 --- /dev/null +++ b/locale/en-US/look_up_down.intent @@ -0,0 +1,2 @@ + up [and] down [] [] +down up [] [] diff --git a/locale/en-US/mouth.voc b/locale/en-US/mouth.voc deleted file mode 100644 index 6027101..0000000 --- a/locale/en-US/mouth.voc +++ /dev/null @@ -1 +0,0 @@ -mouth \ No newline at end of file diff --git a/locale/en-US/mute.voc b/locale/en-US/mute.voc deleted file mode 100644 index 417ed49..0000000 --- a/locale/en-US/mute.voc +++ /dev/null @@ -1,4 +0,0 @@ -mute -sound disable -sound off -sound shutdown \ No newline at end of file diff --git a/locale/en-US/narrow.voc b/locale/en-US/narrow.voc deleted file mode 100644 index d7dced3..0000000 --- a/locale/en-US/narrow.voc +++ /dev/null @@ -1 +0,0 @@ -narrow \ No newline at end of file diff --git a/locale/en-US/narrow_eyes.intent b/locale/en-US/narrow_eyes.intent new file mode 100644 index 0000000..b108810 --- /dev/null +++ b/locale/en-US/narrow_eyes.intent @@ -0,0 +1,2 @@ +narrow [] [] + narrow [] diff --git a/locale/en-US/perform.voc b/locale/en-US/perform.voc deleted file mode 100644 index 31d2cc6..0000000 --- a/locale/en-US/perform.voc +++ /dev/null @@ -1 +0,0 @@ -perform \ No newline at end of file diff --git a/locale/en-US/reboot.voc b/locale/en-US/reboot.voc deleted file mode 100644 index dde059f..0000000 --- a/locale/en-US/reboot.voc +++ /dev/null @@ -1 +0,0 @@ -reboot \ No newline at end of file diff --git a/locale/en-US/reset.intent b/locale/en-US/reset.intent new file mode 100644 index 0000000..6934631 --- /dev/null +++ b/locale/en-US/reset.intent @@ -0,0 +1,2 @@ + [] + diff --git a/locale/en-US/right.voc b/locale/en-US/right.voc deleted file mode 100644 index 19981f7..0000000 --- a/locale/en-US/right.voc +++ /dev/null @@ -1 +0,0 @@ -right \ No newline at end of file diff --git a/locale/en-US/smile.intent b/locale/en-US/smile.intent new file mode 100644 index 0000000..2dbd956 --- /dev/null +++ b/locale/en-US/smile.intent @@ -0,0 +1 @@ + [] [mouth] [] diff --git a/locale/en-US/spin.intent b/locale/en-US/spin.intent new file mode 100644 index 0000000..8b7eb75 --- /dev/null +++ b/locale/en-US/spin.intent @@ -0,0 +1 @@ + [] [] diff --git a/locale/en-US/system.voc b/locale/en-US/system.voc deleted file mode 100644 index 2e3eac7..0000000 --- a/locale/en-US/system.voc +++ /dev/null @@ -1,2 +0,0 @@ -operating system -system \ No newline at end of file diff --git a/locale/en-US/think.intent b/locale/en-US/think.intent new file mode 100644 index 0000000..0fad872 --- /dev/null +++ b/locale/en-US/think.intent @@ -0,0 +1 @@ + [] [mouth] [] diff --git a/locale/en-US/unmute.voc b/locale/en-US/unmute.voc deleted file mode 100644 index 5d526b7..0000000 --- a/locale/en-US/unmute.voc +++ /dev/null @@ -1,3 +0,0 @@ -sound enable -sound on -unmute \ No newline at end of file diff --git a/locale/en-US/up.voc b/locale/en-US/up.voc deleted file mode 100644 index 4d3e85f..0000000 --- a/locale/en-US/up.voc +++ /dev/null @@ -1 +0,0 @@ -up \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 9cfdd47..001a04b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,4 +55,5 @@ ovos_skill_mark1_ctrl = [ "locale/*/*.intent", "locale/*/*.dialog", "locale/*/*.voc", + "locale/*/*.entity", ] diff --git a/test/end2end/golden_utterances.jsonl b/test/end2end/golden_utterances.jsonl index e19386e..6bba843 100644 --- a/test/end2end/golden_utterances.jsonl +++ b/test/end2end/golden_utterances.jsonl @@ -1,35 +1,35 @@ -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "right look", "intent_method": "handle_look_right", "intent_label": "EnclosureLookRight", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "right look enclosure", "intent_method": "handle_look_right", "intent_label": "EnclosureLookRight", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left look", "intent_method": "handle_look_left", "intent_label": "EnclosureLookLeft", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left look enclosure", "intent_method": "handle_look_left", "intent_label": "EnclosureLookLeft", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "up look", "intent_method": "handle_look_up", "intent_label": "EnclosureLookUp", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "up look enclosure", "intent_method": "handle_look_up", "intent_label": "EnclosureLookUp", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down look", "intent_method": "handle_look_down", "intent_label": "EnclosureLookDown", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down look enclosure", "intent_method": "handle_look_down", "intent_label": "EnclosureLookDown", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down up look", "intent_method": "handle_look_up_down", "intent_label": "EnclosureLookUpDown", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down up look animation", "intent_method": "handle_look_up_down", "intent_label": "EnclosureLookUpDown", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down up look enclosure", "intent_method": "handle_look_up_down", "intent_label": "EnclosureLookUpDown", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left right look", "intent_method": "handle_look_left_right", "intent_label": "EnclosureLookLeftRight", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left right look animation", "intent_method": "handle_look_left_right", "intent_label": "EnclosureLookLeftRight", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left right look enclosure", "intent_method": "handle_look_left_right", "intent_label": "EnclosureLookLeftRight", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink", "intent_method": "handle_blink_eyes", "intent_label": "EnclosureEyesBlink", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink left", "intent_method": "handle_blink_eyes", "intent_label": "EnclosureEyesBlink", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink right", "intent_method": "handle_blink_eyes", "intent_label": "EnclosureEyesBlink", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink enclosure", "intent_method": "handle_blink_eyes", "intent_label": "EnclosureEyesBlink", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "rotate", "intent_method": "handle_spin_eyes", "intent_label": "EnclosureEyesSpin", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "rotate enclosure", "intent_method": "handle_spin_eyes", "intent_label": "EnclosureEyesSpin", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "eye narrow", "intent_method": "handle_narrow_eyes", "intent_label": "EnclosureEyesNarrow", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "eye narrow enclosure", "intent_method": "handle_narrow_eyes", "intent_label": "EnclosureEyesNarrow", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "enclosure back to default", "intent_method": "handle_enclosure_reset", "intent_label": "EnclosureReset", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "smile", "intent_method": "handle_enclosure_smile", "intent_label": "EnclosureMouthSmile", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "smile enclosure", "intent_method": "handle_enclosure_smile", "intent_label": "EnclosureMouthSmile", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "listen", "intent_method": "handle_enclosure_listen", "intent_label": "EnclosureMouthListen", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "listen enclosure", "intent_method": "handle_enclosure_listen", "intent_label": "EnclosureMouthListen", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "think", "intent_method": "handle_enclosure_think", "intent_label": "EnclosureMouthThink", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "think enclosure", "intent_method": "handle_enclosure_think", "intent_label": "EnclosureMouthThink", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "crazy eye", "intent_method": "handle_enclosure_crazy_eyes", "intent_label": "EnclosureCrazyEyes", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "crazy eye enclosure", "intent_method": "handle_enclosure_crazy_eyes", "intent_label": "EnclosureCrazyEyes", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} -{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "crazy eye animation", "intent_method": "handle_enclosure_crazy_eyes", "intent_label": "EnclosureCrazyEyes", "intent_type": "adapt", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "right look", "intent_method": "handle_look_right", "intent_label": "look_right.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "right look enclosure", "intent_method": "handle_look_right", "intent_label": "look_right.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left look", "intent_method": "handle_look_left", "intent_label": "look_left.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left look enclosure", "intent_method": "handle_look_left", "intent_label": "look_left.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "up look", "intent_method": "handle_look_up", "intent_label": "look_up.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "up look enclosure", "intent_method": "handle_look_up", "intent_label": "look_up.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down look", "intent_method": "handle_look_down", "intent_label": "look_down.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down look enclosure", "intent_method": "handle_look_down", "intent_label": "look_down.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down up look", "intent_method": "handle_look_up_down", "intent_label": "look_up_down.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down up look animation", "intent_method": "handle_look_up_down", "intent_label": "look_up_down.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "down up look enclosure", "intent_method": "handle_look_up_down", "intent_label": "look_up_down.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left right look", "intent_method": "handle_look_left_right", "intent_label": "look_left_right.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left right look animation", "intent_method": "handle_look_left_right", "intent_label": "look_left_right.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "left right look enclosure", "intent_method": "handle_look_left_right", "intent_label": "look_left_right.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink", "intent_method": "handle_blink_eyes", "intent_label": "blink.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink left", "intent_method": "handle_blink_eyes", "intent_label": "blink.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink right", "intent_method": "handle_blink_eyes", "intent_label": "blink.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "blink enclosure", "intent_method": "handle_blink_eyes", "intent_label": "blink.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "rotate", "intent_method": "handle_spin_eyes", "intent_label": "spin.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "rotate enclosure", "intent_method": "handle_spin_eyes", "intent_label": "spin.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "eye narrow", "intent_method": "handle_narrow_eyes", "intent_label": "narrow_eyes.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "eye narrow enclosure", "intent_method": "handle_narrow_eyes", "intent_label": "narrow_eyes.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "enclosure back to default", "intent_method": "handle_enclosure_reset", "intent_label": "reset.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "smile", "intent_method": "handle_enclosure_smile", "intent_label": "smile.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "smile enclosure", "intent_method": "handle_enclosure_smile", "intent_label": "smile.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "listen", "intent_method": "handle_enclosure_listen", "intent_label": "listen.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "listen enclosure", "intent_method": "handle_enclosure_listen", "intent_label": "listen.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "think", "intent_method": "handle_enclosure_think", "intent_label": "think.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "think enclosure", "intent_method": "handle_enclosure_think", "intent_label": "think.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "crazy eye", "intent_method": "handle_enclosure_crazy_eyes", "intent_label": "crazy_eyes.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "crazy eye enclosure", "intent_method": "handle_enclosure_crazy_eyes", "intent_label": "crazy_eyes.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} +{"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "crazy eye animation", "intent_method": "handle_enclosure_crazy_eyes", "intent_label": "crazy_eyes.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} {"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "change to a custom eye color", "intent_method": "handle_custom_eye_color", "intent_label": "custom_eye_color.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} {"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "change to a custom eye colors", "intent_method": "handle_custom_eye_color", "intent_label": "custom_eye_color.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false} {"skill_id": "ovos-skill-mark1-ctrl.openvoiceos", "utterance": "set to a custom eye color", "intent_method": "handle_custom_eye_color", "intent_label": "custom_eye_color.intent", "intent_type": "padatious", "expected_messages": ["speak"], "needs_manual": false}