diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e385268..3c24f4c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,12 @@ # Changelog -## [1.0.2a1](https://github.com/OpenVoiceOS/ovos-plugin-manager/tree/1.0.2a1) (2025-06-08) +## [1.0.3a1](https://github.com/OpenVoiceOS/ovos-plugin-manager/tree/1.0.3a1) (2025-06-10) -[Full Changelog](https://github.com/OpenVoiceOS/ovos-plugin-manager/compare/1.0.1...1.0.2a1) +[Full Changelog](https://github.com/OpenVoiceOS/ovos-plugin-manager/compare/1.0.2...1.0.3a1) **Merged pull requests:** -- fix: wakeword factory [\#325](https://github.com/OpenVoiceOS/ovos-plugin-manager/pull/325) ([JarbasAl](https://github.com/JarbasAl)) +- refactor: simplify pipeline factory, missed in previous PR [\#327](https://github.com/OpenVoiceOS/ovos-plugin-manager/pull/327) ([JarbasAl](https://github.com/JarbasAl)) diff --git a/downstream_report.txt b/downstream_report.txt index 8c7cdb7b..8f4f5289 100644 --- a/downstream_report.txt +++ b/downstream_report.txt @@ -1,129 +1,129 @@ ovos-plugin-manager==0.9.0 ├── ovos-PHAL-plugin-system==1.3.2 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] +├── ovos-plugin-common-play==1.2.1 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] ├── ovos-vad-plugin-silero==0.0.2 [requires: ovos-plugin-manager>=0.0.11,<1.0.0] -├── ovos-audio==1.0.0a1 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] -│ └── ovos-skill-laugh==0.2.3 [requires: ovos-audio] ├── ovos-PHAL-plugin-network-manager==1.3.4 [requires: ovos-plugin-manager>=0.0.22,<1.0.0] -├── ovos-gui-plugin-shell-companion==1.0.4 [requires: ovos-plugin-manager>=0.5.5,<1.0.0] -├── ovos-microphone-plugin-sounddevice==0.0.0 [requires: ovos-plugin-manager>=0.0.23,<1.0.0] -├── ovos-wikipedia-solver==0.1.0 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] -│ └── ovos-skill-wikipedia==0.8.12 [requires: ovos-wikipedia-solver>=0.0.1,<1.0.0] -├── ovos-audio-plugin-simple==0.1.0 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] ├── ovos-solver-yes-no-plugin==0.2.9a3 [requires: ovos-plugin-manager] │ └── ovos-workshop==3.4.0 [requires: ovos-solver-yes-no-plugin>=0.0.1,<1.0.0] │ ├── ovos-skill-word-of-the-day==0.1.4a1 [requires: ovos-workshop] -│ ├── ovos-skill-volume==0.1.15 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-ocp-pipeline-plugin==1.1.14 [requires: ovos-workshop>=0.1.7,<4.0.0] -│ │ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] -│ ├── ovos-skill-speedtest==0.3.5 [requires: ovos-workshop>=0.0.12,<4.0.0] -│ ├── ovos-skill-confucius-quotes==0.1.11a1 [requires: ovos-workshop>=0.0.15,<4.0.0] +│ ├── ovos-plugin-common-play==1.2.1 [requires: ovos-workshop>=2.4.2,<8.0.0] +│ ├── ovos-skill-naptime==0.3.15 [requires: ovos-workshop>=0.0.15,<8.0.0] +│ ├── ovos-skill-volume==0.1.16 [requires: ovos-workshop>=0.0.15,<8.0.0] │ ├── ovos-core==1.5.0a1 [requires: ovos-workshop>=3.3.4,<4.0.0] +│ ├── ovos-skill-confucius-quotes==0.1.13 [requires: ovos-workshop>=0.0.15,<8.0.0] │ ├── ovos-PHAL-plugin-wifi-setup==1.1.8 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-skill-wordnet==0.2.4a1 [requires: ovos-workshop>=3.3.0,<4.0.0] -│ ├── ovos-skill-moviemaster==0.0.11 [requires: ovos-workshop>=0.0.11,<4.0.0] -│ ├── ovos-skill-icanhazdadjokes==0.3.6 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-plugin-common-play==1.2.0a1 [requires: ovos-workshop>=2.4.2,<4.0.0] -│ ├── ovos-skill-local-media==0.2.11 [requires: ovos-workshop>=2.4.0,<4.0.0] +│ ├── ovos-skill-days-in-history==0.3.11 [requires: ovos-workshop>=3.1.0,<8.0.0] +│ ├── ovos-skill-speedtest==0.3.6 [requires: ovos-workshop>=0.0.12,<8.0.0] │ ├── ovos-skill-fuster-quotes==0.0.4 [requires: ovos-workshop] -│ ├── ovos-skill-weather==1.0.3 [requires: ovos-workshop>=2.2.0,<7.0.0] +│ ├── ovos-adapt-parser==1.0.8 [requires: ovos-workshop>=0.1.7,<8.0.0] +│ │ └── ovos-core==1.5.0a1 [requires: ovos-adapt-parser>=1.0.5,<2.0.0] +│ ├── ovos-m2v-pipeline==0.0.6 [requires: ovos-workshop>=0.1.7,<8.0.0] │ ├── ovos-skill-screenshot==0.0.7 [requires: ovos-workshop] +│ ├── ovos-skill-moviemaster==0.0.12 [requires: ovos-workshop>=0.0.11,<8.0.0] │ ├── ovos-ollama-intent-pipeline-plugin==0.0.3 [requires: ovos-workshop>=0.1.7,<4.0.0] -│ ├── ovos-skill-naptime==0.3.14 [requires: ovos-workshop>=0.0.15,<4.0.0] │ ├── ovos-skill-camera==1.0.5a3 [requires: ovos-workshop>=0.0.12] -│ ├── ovos-skill-date-time==1.1.2a2 [requires: ovos-workshop>=0.0.16,<4.0.0] -│ ├── ovos-common-query-pipeline-plugin==1.1.7 [requires: ovos-workshop>=0.1.7,<4.0.0] -│ │ └── ovos-core==1.5.0a1 [requires: ovos-common-query-pipeline-plugin>=1.0.5,<2.0.0] +│ ├── ovos-skill-weather==1.0.4 [requires: ovos-workshop>=2.2.0,<8.0.0] +│ ├── ovos-skill-number-facts==0.1.12 [requires: ovos-workshop>=0.0.15,<8.0.0] │ ├── ovos-skill-alerts==0.1.25a2 [requires: ovos-workshop>=2.2.0,<4.0.0] +│ ├── ovos-skill-homescreen==3.0.3 [requires: ovos-workshop>=2.4.0,<8.0.0] │ ├── ovos-skill-dictation==0.2.16a1 [requires: ovos-workshop>=0.0.15,<4.0.0] │ ├── ovos-skill-somafm==0.1.6a1 [requires: ovos-workshop>=0.0.16] -│ ├── ovos-skill-wikipedia==0.8.12 [requires: ovos-workshop>=3.4.0a1,<7.0.0] │ ├── ovos-skill-fallback-unknown==0.1.7a1 [requires: ovos-workshop>=0.0.15,<5.0.0] -│ ├── ovos-adapt-parser==1.0.5 [requires: ovos-workshop>=0.1.7,<4.0.0] -│ │ └── ovos-core==1.5.0a1 [requires: ovos-adapt-parser>=1.0.5,<2.0.0] -│ ├── ovos-skill-homescreen==3.0.3a1 [requires: ovos-workshop>=2.4.0,<4.0.0] -│ ├── ovos-skill-number-facts==0.1.12a2 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-skill-cmd==0.2.10 [requires: ovos-workshop>=0.0.15,<4.0.0] +│ ├── ovos-skill-news==0.4.5 [requires: ovos-workshop>=0.0.16,<8.0.0] │ ├── ovos-skill-parrot==0.1.20 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-skill-news==0.4.5a1 [requires: ovos-workshop>=0.0.16,<4.0.0] -│ ├── ovos-m2v-pipeline==0.0.5 [requires: ovos-workshop>=0.1.7,<4.0.0] +│ ├── ovos-skill-date-time==1.1.3 [requires: ovos-workshop>=0.0.16,<8.0.0] +│ ├── ovos-skill-pyradios==0.1.5 [requires: ovos-workshop>=0.0.16,<8.0.0] +│ ├── ovos-skill-wordnet==0.2.5 [requires: ovos-workshop>=3.3.0,<8.0.0] │ ├── ovos-skill-laugh==0.2.3 [requires: ovos-workshop] │ ├── ovos-skill-diagnostics==0.0.8 [requires: ovos-workshop>=0.0.12] -│ ├── ovos-padatious==1.4.1 [requires: ovos-workshop>=0.1.7,<8.0.0] -│ ├── ovos-skill-pyradios==0.1.5a2 [requires: ovos-workshop>=0.0.16,<4.0.0] +│ ├── ovos-skill-icanhazdadjokes==0.3.7 [requires: ovos-workshop>=0.0.15,<8.0.0] +│ ├── ovos-skill-iss-location==0.2.16 [requires: ovos-workshop>=0.0.12,<8.0.0] +│ ├── ovos-ocp-pipeline-plugin==1.1.15a1 [requires: ovos-workshop>=0.1.7,<8.0.0] +│ │ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] +│ ├── ovos-skill-wikipedia==0.8.13 [requires: ovos-workshop>=3.4.0,<8.0.0] │ ├── ovos-skill-randomness==0.1.2a1 [requires: ovos-workshop] +│ ├── ovos-skill-youtube-music==0.1.7 [requires: ovos-workshop>=0.0.16,<8.0.0] │ ├── ovos-skill-application-launcher==0.5.13 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-skill-personal==0.1.18 [requires: ovos-workshop>=0.0.15,<4.0.0] -│ ├── ovos-skill-youtube-music==0.1.7a1 [requires: ovos-workshop>=0.0.16,<4.0.0] -│ ├── ovos-skill-days-in-history==0.3.10a6 [requires: ovos-workshop>=3.1.0,<4.0.0] +│ ├── ovos-skill-cmd==0.2.11 [requires: ovos-workshop>=0.0.15,<8.0.0] +│ ├── ovos-skill-personal==0.1.19 [requires: ovos-workshop>=0.0.15,<8.0.0] +│ ├── ovos-skill-local-media==0.2.12 [requires: ovos-workshop>=2.4.0,<8.0.0] │ ├── ovos-skill-color-picker==0.0.7 [requires: ovos-workshop] +│ ├── ovos-padatious==1.4.2 [requires: ovos-workshop>=0.1.7,<8.0.0] │ ├── ovos-skill-ip==0.2.8 [requires: ovos-workshop] -│ ├── ovos-skill-iss-location==0.2.15 [requires: ovos-workshop>=0.0.12,<4.0.0] -│ └── ovos-skill-wikihow==0.3.2 [requires: ovos-workshop>=3.4.0a1,<4.0.0] -├── ovos-ocp-pipeline-plugin==1.1.14 [requires: ovos-plugin-manager>=0.5.0,<1.0.0] -│ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] +│ ├── ovos-skill-wikihow==0.3.3 [requires: ovos-workshop>=3.4.0a1,<8.0.0] +│ └── ovos-common-query-pipeline-plugin==1.1.8a1 [requires: ovos-workshop>=0.1.7,<8.0.0] +│ └── ovos-core==1.5.0a1 [requires: ovos-common-query-pipeline-plugin>=1.0.5,<2.0.0] +├── ovos-utterance-normalizer==0.2.2 [requires: ovos-plugin-manager>=0.0.25,<2.0.0] +│ ├── ovos-skill-volume==0.1.16 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] +│ ├── ovos-skill-weather==1.0.4 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] +│ ├── ovos-skill-alerts==0.1.25a2 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] +│ ├── ovos-skill-date-time==1.1.3 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] +│ └── ovos-classifiers==0.0.0a59 [requires: ovos-utterance-normalizer] +│ └── ovos-ocp-pipeline-plugin==1.1.15a1 [requires: ovos-classifiers] +│ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] ├── ovos-ww-plugin-precise-lite==0.1.3 [requires: ovos-plugin-manager>=0.0.4,<1.0.0] ├── ovos-ww-plugin-vosk==0.1.4 [requires: ovos-plugin-manager>=0.0.1] ├── ovos-core==1.5.0a1 [requires: ovos-plugin-manager>=0.9.0,<1.0.0] +├── ovos-persona==0.6.23 [requires: ovos-plugin-manager>=0.8.3,<2.0.0] +│ └── ovos-core==1.5.0a1 [requires: ovos-persona>=0.4.4,<1.0.0] +├── ovos-phal-plugin-ipgeo==0.1.6 [requires: ovos-plugin-manager>=0.0.1,<2.0.0] ├── ovos-PHAL-plugin-wifi-setup==1.1.8 [requires: ovos-plugin-manager>=0.0.23,<1.0.0] ├── ovos-tts-plugin-server==0.0.2 [requires: ovos-plugin-manager>=0.0.5,<1.0.0] ├── ovos-ocp-m3u-plugin==0.0.2 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -│ └── ovos-ocp-news-plugin==0.1.0 [requires: ovos-ocp-m3u-plugin>=0.0.1,<1.0.0] +│ └── ovos-ocp-news-plugin==0.1.1 [requires: ovos-ocp-m3u-plugin>=0.0.1,<1.0.0] ├── ovos-audio-plugin-mpv==0.2.1 [requires: ovos-plugin-manager>=0.0.26a29] -├── ovos-microphone-plugin-alsa==0.1.0 [requires: ovos-plugin-manager>=0.0.23,<1.0.0] -├── ovos-skill-wordnet==0.2.4a1 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] ├── ovos-PHAL-plugin-mk1==0.1.3 [requires: ovos-plugin-manager>=0.0.24] +├── ovos-wikipedia-solver==0.1.1 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] +│ └── ovos-skill-wikipedia==0.8.13 [requires: ovos-wikipedia-solver>=0.0.1,<1.0.0] ├── ovos-PHAL-plugin-alsa==0.1.2 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] ├── ovos-translate-server-plugin==0.0.2 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -│ └── ovos-skill-wordnet==0.2.4a1 [requires: ovos-translate-server-plugin] +│ └── ovos-skill-wordnet==0.2.5 [requires: ovos-translate-server-plugin] ├── ovos-stt-plugin-server==0.1.1 [requires: ovos-plugin-manager>=0.7.0,<1.0.0] -├── ovos-plugin-common-play==1.2.0a1 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] ├── ovos-dialog-normalizer-plugin==0.0.1 [requires: ovos-plugin-manager] ├── ovos-PHAL-plugin-hotkeys==0.1.1 [requires: ovos-plugin-manager>=0.0.1] ├── ovos-stt-plugin-vosk==0.2.3 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] +├── ovos-adapt-parser==1.0.8 [requires: ovos-plugin-manager>=0.5.0,<2.0.0] +│ └── ovos-core==1.5.0a1 [requires: ovos-adapt-parser>=1.0.5,<2.0.0] +├── ovos-m2v-pipeline==0.0.6 [requires: ovos-plugin-manager>=0.5.0,<2.0.0] ├── ovos-ollama-intent-pipeline-plugin==0.0.3 [requires: ovos-plugin-manager>=0.5.0,<1.0.0] -├── ovos-media-plugin-spotify==0.2.4 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] -├── ovos-gui==1.3.2 [requires: ovos-plugin-manager>=0.5.5,<1.0.0] -├── ovos-persona==0.6.22 [requires: ovos-plugin-manager>=0.8.3,<1.0.0] -│ └── ovos-core==1.5.0a1 [requires: ovos-persona>=0.4.4,<1.0.0] -├── ovos-utterance-normalizer==0.2.1 [requires: ovos-plugin-manager>=0.0.25,<1.0.0] -│ ├── ovos-skill-volume==0.1.15 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] -│ ├── ovos-skill-weather==1.0.3 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] -│ ├── ovos-skill-date-time==1.1.2a2 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] -│ ├── ovos-skill-alerts==0.1.25a2 [requires: ovos-utterance-normalizer>=0.0.1,<1.0.0] -│ └── ovos-classifiers==0.0.0a59 [requires: ovos-utterance-normalizer] -│ └── ovos-ocp-pipeline-plugin==1.1.14 [requires: ovos-classifiers] -│ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] +├── ovos-media-plugin-spotify==0.2.6 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] +├── ovos-ocp-rss-plugin==0.1.1 [requires: ovos-plugin-manager>=0.0.1,<2.0.0] +│ └── ovos-ocp-news-plugin==0.1.1 [requires: ovos-ocp-rss-plugin>=0.0.2,<1.0.0] +├── ovos-microphone-plugin-sounddevice==0.0.1 [requires: ovos-plugin-manager>=0.0.23,<2.0.0] +├── ovos-microphone-plugin-alsa==0.1.2 [requires: ovos-plugin-manager>=0.0.23,<2.0.0] ├── ovos-stt-plugin-chromium==0.1.2 [requires: ovos-plugin-manager>=0.0.1a7] -├── ovos-wolfram-alpha-solver==0.0.2 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] -├── ovos-media-plugin-chromecast==0.1.0 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] -├── ovos-vad-plugin-noise==0.1.0 [requires: ovos-plugin-manager>=0.0.11,<1.0.0] -├── ovos-common-query-pipeline-plugin==1.1.7 [requires: ovos-plugin-manager>=0.5.0,<1.0.0] -│ └── ovos-core==1.5.0a1 [requires: ovos-common-query-pipeline-plugin>=1.0.5,<2.0.0] +├── ovos-openai-plugin==2.0.3 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] +│ └── ovos-persona==0.6.23 [requires: ovos-openai-plugin>=2.0.0,<3.0.0] +│ └── ovos-core==1.5.0a1 [requires: ovos-persona>=0.4.4,<1.0.0] ├── ovos-dinkum-listener==0.4.0 [requires: ovos-plugin-manager>=0.3.1,<1.0.0] -├── ovos-PHAL==0.2.8 [requires: ovos-plugin-manager>=0.0.25,<1.0.0] -├── ovos-phal-plugin-connectivity-events==0.1.1 [requires: ovos-plugin-manager>=0.0.21,<1.0.0] +├── ovos-media-plugin-chromecast==0.1.2 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] ├── ovos-utterance-corrections-plugin==0.1.0 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -├── ovos-adapt-parser==1.0.5 [requires: ovos-plugin-manager>=0.5.0,<1.0.0] -│ └── ovos-core==1.5.0a1 [requires: ovos-adapt-parser>=1.0.5,<2.0.0] +├── ovos-audio==1.0.1 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] +│ └── ovos-skill-laugh==0.2.3 [requires: ovos-audio] +├── ovos-ocp-news-plugin==0.1.1 [requires: ovos-plugin-manager>=0.0.1,<2.0.0] +├── ovos-gui==1.3.3 [requires: ovos-plugin-manager>=0.5.5,<2.0.0] ├── ovos-solver-bm25-plugin==0.0.1 [requires: ovos-plugin-manager>=0.8.5] -│ └── ovos-wikipedia-solver==0.1.0 [requires: ovos-solver-bm25-plugin>=0.0.1,<1.0.0] -│ └── ovos-skill-wikipedia==0.8.12 [requires: ovos-wikipedia-solver>=0.0.1,<1.0.0] -├── ovos-openai-plugin==2.0.2 [requires: ovos-plugin-manager>=0.0.26,<1.0.0] -│ └── ovos-persona==0.6.22 [requires: ovos-openai-plugin>=2.0.0,<3.0.0] -│ └── ovos-core==1.5.0a1 [requires: ovos-persona>=0.4.4,<1.0.0] -├── ovos-phal-plugin-ipgeo==0.1.5 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -├── ovos-m2v-pipeline==0.0.5 [requires: ovos-plugin-manager>=0.5.0,<1.0.0] +│ └── ovos-wikipedia-solver==0.1.1 [requires: ovos-solver-bm25-plugin>=0.0.1,<1.0.0] +│ └── ovos-skill-wikipedia==0.8.13 [requires: ovos-wikipedia-solver>=0.0.1,<1.0.0] +├── ovos-ocp-youtube-plugin==0.0.5 [requires: ovos-plugin-manager>=0.0.1,<2.0.0] +├── ovos-skill-wordnet==0.2.5 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] ├── ovos-skill-laugh==0.2.3 [requires: ovos-plugin-manager] ├── ovos-PHAL-plugin-wallpaper-manager==0.2.4 [requires: ovos-plugin-manager>=0.0.23,<1.0.0] -├── ovos-ocp-youtube-plugin==0.0.4 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -├── ovos-padatious==1.4.1 [requires: ovos-plugin-manager>=0.5.0,<2.0.0] -├── ovos-ocp-rss-plugin==0.1.0 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -│ └── ovos-ocp-news-plugin==0.1.0 [requires: ovos-ocp-rss-plugin>=0.0.2,<1.0.0] -├── ovos-solver-failure-plugin==0.0.1 [requires: ovos-plugin-manager] -│ └── ovos-persona==0.6.22 [requires: ovos-solver-failure-plugin] -│ └── ovos-core==1.5.0a1 [requires: ovos-persona>=0.4.4,<1.0.0] +├── ovos-ocp-pipeline-plugin==1.1.15a1 [requires: ovos-plugin-manager>=0.5.0,<2.0.0] +│ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] +├── ovos-wolfram-alpha-solver==0.0.3 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] ├── ovos-classifiers==0.0.0a59 [requires: ovos-plugin-manager>=0.0.26a38] -│ └── ovos-ocp-pipeline-plugin==1.1.14 [requires: ovos-classifiers] +│ └── ovos-ocp-pipeline-plugin==1.1.15a1 [requires: ovos-classifiers] │ └── ovos-core==1.5.0a1 [requires: ovos-ocp-pipeline-plugin>=1.0.10,<2.0.0] -├── ovos-ocp-news-plugin==0.1.0 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] -└── ovos-PHAL-plugin-balena-wifi==1.2.1 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] +├── ovos-solver-failure-plugin==0.0.2 [requires: ovos-plugin-manager>=0.0.26,<2.0.0] +│ └── ovos-persona==0.6.23 [requires: ovos-solver-failure-plugin] +│ └── ovos-core==1.5.0a1 [requires: ovos-persona>=0.4.4,<1.0.0] +├── ovos-padatious==1.4.2 [requires: ovos-plugin-manager>=0.5.0,<2.0.0] +├── ovos-PHAL==0.2.9 [requires: ovos-plugin-manager>=0.0.25,<2.0.0] +├── ovos-common-query-pipeline-plugin==1.1.8a1 [requires: ovos-plugin-manager>=0.5.0,<2.0.0] +│ └── ovos-core==1.5.0a1 [requires: ovos-common-query-pipeline-plugin>=1.0.5,<2.0.0] +├── ovos-vad-plugin-noise==0.1.2 [requires: ovos-plugin-manager>=0.0.11,<2.0.0] +├── ovos-audio-plugin-simple==0.1.2 [requires: ovos-plugin-manager>=0.0.1,<2.0.0] +├── ovos-phal-plugin-connectivity-events==0.1.2 [requires: ovos-plugin-manager>=0.0.21,<2.0.0] +├── ovos-PHAL-plugin-balena-wifi==1.2.1 [requires: ovos-plugin-manager>=0.0.1,<1.0.0] +└── ovos-gui-plugin-shell-companion==1.0.5 [requires: ovos-plugin-manager>=0.5.5,<2.0.0] diff --git a/ovos_plugin_manager/pipeline.py b/ovos_plugin_manager/pipeline.py index 48b993d4..696bf07b 100644 --- a/ovos_plugin_manager/pipeline.py +++ b/ovos_plugin_manager/pipeline.py @@ -1,21 +1,15 @@ -import re -from typing import Any, List, Optional, Tuple, Callable, Union, Dict, Type +from typing import Any, List, Optional, Union, Dict, Type from ovos_bus_client.client import MessageBusClient -from ovos_bus_client.message import Message from ovos_config import Configuration from ovos_utils.fakebus import FakeBus -from ovos_plugin_manager.templates.pipeline import ConfidenceMatcherPipeline, PipelinePlugin, IntentHandlerMatch +from ovos_plugin_manager.templates.pipeline import ConfidenceMatcherPipeline, PipelinePlugin from ovos_plugin_manager.utils import PluginTypes, find_plugins, load_plugin # Typing aliases -UtteranceList = List[str] -LangCode = str PipelineID = str PipelineMatcherID = str -PipelineConfig = List[PipelineMatcherID] -MatcherFunction = Callable[[UtteranceList, LangCode, Message], Optional[IntentHandlerMatch]] def find_pipeline_plugins() -> Dict[PipelineID, Type[PipelinePlugin]]: @@ -45,30 +39,6 @@ class OVOSPipelineFactory: """ Factory class for discovering, loading, and managing OVOS pipeline plugins. """ - _CACHE: Dict[PipelineID, PipelinePlugin] = {} - _MAP: Dict[str, str] = { - "converse": "ovos-converse-pipeline-plugin", - "common_qa": "ovos-common-query-pipeline-plugin", - "fallback_high": "ovos-fallback-pipeline-plugin-high", - "fallback_medium": "ovos-fallback-pipeline-plugin-medium", - "fallback_low": "ovos-fallback-pipeline-plugin-low", - "stop_high": "ovos-stop-pipeline-plugin-high", - "stop_medium": "ovos-stop-pipeline-plugin-medium", - "stop_low": "ovos-stop-pipeline-plugin-low", - "adapt_high": "ovos-adapt-pipeline-plugin-high", - "adapt_medium": "ovos-adapt-pipeline-plugin-medium", - "adapt_low": "ovos-adapt-pipeline-plugin-low", - "padacioso_high": "ovos-padacioso-pipeline-plugin-high", - "padacioso_medium": "ovos-padacioso-pipeline-plugin-medium", - "padacioso_low": "ovos-padacioso-pipeline-plugin-low", - "padatious_high": "ovos-padatious-pipeline-plugin-high", - "padatious_medium": "ovos-padatious-pipeline-plugin-medium", - "padatious_low": "ovos-padatious-pipeline-plugin-low", - "ocp_high": "ovos-ocp-pipeline-plugin-high", - "ocp_medium": "ovos-ocp-pipeline-plugin-medium", - "ocp_low": "ovos-ocp-pipeline-plugin-low", - "ocp_legacy": "ovos-ocp-pipeline-plugin-legacy" - } @staticmethod def get_installed_pipeline_ids() -> List[PipelineID]: @@ -104,96 +74,23 @@ def get_installed_pipeline_matcher_ids() -> List[PipelineMatcherID]: def load_plugin( cls, pipe_id: PipelineID, - use_cache: bool = True, bus: Optional[Union[MessageBusClient, FakeBus]] = None, config: Optional[Dict[str, Any]] = None ) -> PipelinePlugin: """ - Load (and optionally cache) a pipeline plugin instance. + Load a pipeline plugin instance. Args: pipe_id: The pipeline plugin ID. - use_cache: Whether to use a cached instance. bus: Optional message bus client. config: Optional configuration for the plugin. Returns: An instance of the loaded pipeline plugin. """ - if use_cache and pipe_id in cls._CACHE: - return cls._CACHE[pipe_id] - config = config or Configuration().get("intents", {}).get(pipe_id, {}) clazz = find_pipeline_plugins().get(pipe_id) if not clazz: raise ValueError(f"Unknown pipeline plugin: {pipe_id}") - plugin_instance = clazz(bus, config) - if use_cache: - cls._CACHE[pipe_id] = plugin_instance return plugin_instance - - @classmethod - def get_pipeline_matcher( - cls, - matcher_id: PipelineMatcherID, - use_cache: bool = True, - bus: Optional[Union[MessageBusClient, FakeBus]] = None - ) -> MatcherFunction: - """ - Retrieve a matcher function for a given pipeline matcher ID. - - Args: - matcher_id: The configured matcher ID (e.g. `adapt_high`). - use_cache: Whether to use cached plugin instances. - bus: Optional message bus client. - - Returns: - A callable matcher function. - """ - matcher_id = cls._MAP.get(matcher_id, matcher_id) - pipe_id = re.sub(r'-(high|medium|low)$', '', matcher_id) - plugin = cls.load_plugin(pipe_id, use_cache, bus) - - if isinstance(plugin, ConfidenceMatcherPipeline): - if matcher_id.endswith("-high"): - return plugin.match_high - if matcher_id.endswith("-medium"): - return plugin.match_medium - if matcher_id.endswith("-low"): - return plugin.match_low - return plugin.match - - @classmethod - def create( - cls, - pipeline: Optional[PipelineConfig] = None, - use_cache: bool = True, - bus: Optional[Union[MessageBusClient, FakeBus]] = None - ) -> List[Tuple[PipelineMatcherID, MatcherFunction]]: - """ - Create matcher functions from a list of pipeline matcher IDs. - - Args: - pipeline: A list of matcher IDs. - use_cache: Whether to use cached plugin instances. - bus: Optional message bus client. - - Returns: - A list of (matcher ID, matcher function) tuples. - """ - return [(matcher_id, cls.get_pipeline_matcher(matcher_id, use_cache, bus)) - for matcher_id in (pipeline or [])] - - @staticmethod - def shutdown() -> None: - """ - Call shutdown on all cached plugin instances, if they define it. - """ - for plugin in OVOSPipelineFactory._CACHE.values(): - shutdown_fn = getattr(plugin, "shutdown", None) - if callable(shutdown_fn): - try: - shutdown_fn() - except Exception: - continue diff --git a/ovos_plugin_manager/version.py b/ovos_plugin_manager/version.py index fd1e64f1..cf2e7fda 100644 --- a/ovos_plugin_manager/version.py +++ b/ovos_plugin_manager/version.py @@ -1,6 +1,6 @@ # START_VERSION_BLOCK VERSION_MAJOR = 1 VERSION_MINOR = 0 -VERSION_BUILD = 2 -VERSION_ALPHA = 0 +VERSION_BUILD = 3 +VERSION_ALPHA = 1 # END_VERSION_BLOCK