Release 1.0.0a3#28
Open
github-actions[bot] wants to merge 31 commits intomasterfrom
Open
Conversation
Configure Renovate
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Complete French DuckDuckGo locale * Refine French DuckDuckGo intents * Refine French DuckDuckGo prompts * Align French DuckDuckGo intents with runtime support * Polish French DuckDuckGo voice locale
Automated rename submitted by @JarbasAl via OVOS Localize. Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
* Add remaining French DDG intents * Register DDG intent aliases and document locale sync * Keep French DDG PR locale-only * Drop remaining non-locale DDG changes * Remove README change from French DDG PR
Submitted by @Juanpabl via OVOS Localize Co-authored-by: ovos-localize[bot] <ovos-localize[bot]@users.noreply.github.com>
… more intents for infobox parsing (#23) * feat: migrate to agentic plugin pattern (RetrievalEngine + ToolBox) Replaces deprecated QuestionSolver/opm.solver.question with: - DuckDuckGoRetrievalEngine(RetrievalEngine) — opm.agents.retrieval - DuckDuckGoToolbox(ToolBox) — opm.agents.toolbox Also: pyproject.toml replaces setup.py; 21 unit tests added; standard GH Actions workflows applied; locale dir casing fixed (eu→eu-ES). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: remove solver-era methods, privatise internal helpers Drop get_spoken_answer, get_expanded_answer, get_image (solver pattern artifacts with no equivalent in the agentic model). Rename get_data → _fetch, extract_and_search → _search, register_from_file → _load_intents, get_keyword_extractor → _keyword_extractor, register_infobox_intent → _register_intent, match_infobox_intent → _match_infobox_intent. Toolbox now delegates to query() instead of the removed get_spoken_answer. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: restore get_image as public method, add duckduckgo_image tool get_image(query, lang) returns None instead of a fallback path when DDG has no image — cleaner for standalone use. DuckDuckGoToolbox now exposes two tools: search_duckduckgo (text answer) and duckduckgo_image (image URL). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: rename package ovos-ddg-solver-plugin → ovos-ddg-plugin Renames the Python package from ovos_ddg_solver to ovos_ddg_plugin, dropping all solver mentions. The old PyPI package name is left intact for legacy users. Entry points, pyproject.toml, coverage workflow, and tests updated accordingly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: clean up skill-era artifacts and update CI - Remove translations/ (gitlocalize deprecated) - Remove skill-era locale files (voc, dialog, skill.json, extra intents) - Delete legacy workflows (build_tests, unit_tests, license_tests, ovoscope, skill-check) - Add opm-check.yml for OPM plugin validation - Update README, expand tests, add docstrings and type annotations Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add duckduckgo_infobox as a third agent tool Exposes get_infobox as DDGInfoboxArgs/DDGInfoboxOutput tool so agents can retrieve all structured fields and related topics in one call. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: remove secrets from non-release workflows, fix version_file path Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: add LICENSE file (Apache 2.0) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: rename intent entity {query} → {keyword}, add per-language intent tests - All locale intent files: {query} → {keyword} - _match_infobox_intent: extract "keyword" entity instead of "query" - Add TestIntentParsingAllLanguages: 74 dynamically-generated tests covering all 9 locales (ca, da, de, en, eu, fr, gl, it, pt) across all intent types Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: fix infobox key lookup, add 12 new intents, improve all locales Bug fixes: - get_infobox: normalise DDG labels spaces→underscores so "age at death" matches intent name "age_at_death" (all multi-word lookups were silently None) - _match_infobox_intent: strip possessive 's from both query and training samples so "Darwin's father" matches "{keyword} father" patterns - Add FIELD_ALIASES: alma_mater→education, resting_place→burial fallback, notable_awards→awards, doctoral_students→other_academic_advisors New intents (all 10 locales): institutions, notable_awards, notable_work, movement, occupation, predecessor, successor, religion, doctoral_students, baptised, father, mother Locale fixes: - es-ES: rewrote all 11 intents (all patterns were missing {keyword}) - it-IT: filled 9 previously empty intents - pt-PT: filled 6 previously empty intents - pt-PT/gl-ES: deduplicated "onde estudou" ambiguity between education/alma_mater Tests: 144 passing (up from 128) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add 28 new infobox intents for films, companies, geography, people - Added intents: political_party, age, director, starring, released, running_time, budget, box_office, founded, founders, industry, ceo, owner, inventor, revenue, height, country, elevation, length, other_names, sport, years_active, coached_by, partner, citizenship, location, license, designed_by - Used typed entity labels ({person}, {movie}, {company}, {place}, {mountain}, {software}, {organization}) instead of generic {keyword} where entity type is unambiguous — improves dataset quality - Updated _match_infobox_intent to accept any entity label, not just {keyword} - Expanded FIELD_ALIASES: burial_place, preceded_by, succeeded_by, notable_works, style, founder(s), first_appeared, launched, other_names, partner(s), years_active/active, designed_by/architect - All 10 locales covered, 173 tests passing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add 28 more intents, massively expand samples, fix training data bugs New intents (all 10 locales): author, genre, language, original_title, publisher, head_coach, stadium, championships, platforms, developer, produced_by, written_by, nickname, capital, population, area, headquarters, net_worth, spouse, scientific_name, habitat, diet, conservation_status, opened, label, members, composers, number_of_employees Existing en-US intents expanded from ~4 to 12-15 samples each with more linguistic variation, typed entity labels, and alternative phrasings. Bug fixes in _load_intents: - Normalise whitespace after expand_parentheses: (word|) no longer produces double-spaces in training samples - Remove trailing empty alternatives (|) from patterns that caused cross-intent entity capture (citizenship, religion, diet, etc.) - Removed competing patterns between head_coach/coached_by, location/headquarters, partner/spouse Expanded FIELD_ALIASES to cover DDG key variants for all new intents. 201 tests passing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: ensure all 79 en-US intents have coverage; fix fields/occupation conflict - Add test for fields intent - Remove 'what field did X work in' from occupation (belongs in fields) - Add past tense variant to fields intent - 202 tests passing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 79-intent multilingual infobox matching with infobox-based disambiguation - 79 Padacioso intent files × 10 locales (en-US, ca-ES, da-DK, de-DE, es-ES, eu-ES, fr-FR, gl-ES, it-IT, pt-PT), each with 6–12 sample patterns - Replace generic {keyword} slot with typed entity labels ({person}, {movie}, {place}, {animal}, {company}, {software}, {book}, {artist}, {group}, {organization}, {mountain}, {team}) wherever context constrains the type - _match_infobox_intents() uses calc_intents() (plural) to return all candidates with confidence + entity_type; query() walks the list and picks the first whose DDG infobox field is non-empty, resolving ties like length vs running_time for ambiguous entities such as "Amazon" - 853 intent-matching tests (849 unambiguous + 2 explicit ambiguous cases that assert assertIn rather than assertEqual) - Fix trailing empty-alternative bug (word|) in all 9 non-English conservation_status.intent files and several others - Fix gl-ES alma_mater.intent (was a copy of education), eu-ES fields.intent typo, da-DK predecessor duplicate pattern, eu-ES developer/founders conflict - Rewrite README with full intent catalogue, disambiguation flow docs, and contributor guide for adding/extending intent files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Delete ovos_ddg_solver/locale/an directory * Delete TODO.md --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: correct version_file path and modernise release_workflow.yml - version_file was pointing to ovos_ddg_solver/version.py which does not exist; the real version file lives in ovos_ddg_plugin/version.py - add a minimal setup.py (delegates to pyproject.toml) so that the TigreGotico/gh-automations reusable workflow can call `python setup.py --version` without a FileNotFoundError - replace deprecated `::set-output` with $GITHUB_OUTPUT - replace `python setup.py sdist bdist_wheel` with `python -m build` - bump inline action versions to @v4 / @v5 and pin pypa/gh-action-pypi-publish to release/v1 - use python 3.11 (stable) instead of 3.14 (unreleased) in inline jobs Fixes: https://github.com/OpenVoiceOS/ovos-ddg-plugin/actions/runs/24739661200 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: replace TigreGotico workflows with OpenVoiceOS/gh-automations - release_workflow.yml: drop inline publish/propose_release jobs, use OpenVoiceOS/gh-automations publish-alpha reusable workflow; fix version_file path (ovos_ddg_solver → ovos_ddg_plugin) - publish_stable.yml: same replacement; fix version_file path - release-preview.yml: fix package_name and version_file path - Pin all three to gh-automations@05c0bb4 (current dev SHA) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use @dev ref for gh-automations, not pinned SHA * fix: remove setup.py shim, pyproject.toml is the build source --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Update dependency ovos-config to v2 * Update pyproject.toml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: JarbasAI <33701864+JarbasAl@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human review requested!