Metadata-Version: 2.4
Name: ovos-workshop
Version: 8.2.0a1
Summary: frameworks, templates and patches for the OpenVoiceOS universe
Author-email: jarbasAi <jarbasai@mailfence.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/OpenVoiceOS/OVOS-workshop
Project-URL: Repository, https://github.com/OpenVoiceOS/OVOS-workshop
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ovos-utils<1.0.0,>=0.7.0
Requires-Dist: ovos_bus_client<2.0.0,>=1.3.8a1
Requires-Dist: ovos-config<3.0.0,>=0.0.12
Requires-Dist: ovos-yes-no-plugin<1.0.0,>=0.3.0
Requires-Dist: ovos-option-matcher-fuzzy-plugin<1.0.0,>=0.0.1
Requires-Dist: ovos-number-parser<1.0.0,>=0.0.1
Requires-Dist: ovos-plugin-manager<3.0.0,>=2.4.0a1
Requires-Dist: rapidfuzz
Requires-Dist: langcodes
Requires-Dist: padacioso<2.0.0,>=1.0.0
Provides-Extra: test
Requires-Dist: ovos-core>=0.0.8a50; extra == "test"
Requires-Dist: ovoscope>=0.1.0; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: ovos-translate-server-plugin; extra == "test"
Dynamic: license-file

# OVOS Workshop

Base classes, decorators, and helpers for building skills and applications for OpenVoiceOS.

## Install

```bash
pip install ovos-workshop
```

Runtime dependencies include `ovos-yes-no-plugin` and `ovos-option-matcher-fuzzy-plugin`, which back the `ask_yesno` and `ask_selection` skill methods.

## Quick Start

```python
from ovos_workshop.skills.ovos import OVOSSkill
from ovos_workshop.decorators import intent_handler


class HelloWorldSkill(OVOSSkill):

    @intent_handler("hello.intent")
    def handle_hello(self, message):
        self.speak_dialog("hello.response")


def create_skill():
    return HelloWorldSkill()
```

Register in `pyproject.toml`:

```toml
[project.entry-points."opm.skills"]
hello-world-skill = "hello_world_skill:HelloWorldSkill"
```

## Configuration

Key settings a skill can accept in its `settings.json`:

| Key | Default | Description |
|-----|---------|-------------|
| `ask_yesno_plugin` | `ovos-solver-yes-no-plugin` | YesNoEngine plugin used by `ask_yesno()` |
| `ask_selection_plugin` | `ovos-option-matcher-fuzzy-plugin` | OptionMatcherEngine plugin used by `ask_selection()` |

Both keys can also be set system-wide under the `skills` block in `mycroft.conf`.

## Documentation

Full reference is in [`docs/`](docs/index.md):

- [Skill classes](docs/skill-classes.md)
- [OVOSSkill base class](docs/ovos-skill.md)
- [ask_yesno / ask_selection plugin system](docs/skill-interaction.md)
- [Decorators](docs/decorators.md)
- [Settings](docs/settings.md)
- [Resource files](docs/resource-files.md)

## License

Apache 2.0
