Add astral community ability - #361
Conversation
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Updated the BasicTemplateCapability class to include detailed comments and prompts for user interaction. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Removed the register_capability method and added a comment tag for capability registration. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Removed unused import and commented out the capability registration method. Added a tag for register capability. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Updated the boilerplate note for the register capability method in README.md. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Enhance path check workflow to provide detailed comments on PR violations and allowed files. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Enhance path-check workflow to validate file changes in PRs, ensuring only files in the 'community/' folder are modified. Provide detailed feedback in PR comments based on the check results. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Updated regex for register capability tag and improved error message. Signed-off-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Signed-off-by: abubakar4360 <abubakarabbasi541@gmail.com> Co-authored-by: markdelta24 <your-actual-github-markdelta@zemuriacom> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com> Co-authored-by: abubakar4360 <abubakarabbasi541@gmail.com>
Signed-off-by: abubakar4360 <abubakarabbasi541@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com> Co-authored-by: abubakar4360 <abubakarabbasi541@gmail.com>
Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com> Co-authored-by: Uzair Ullah <uzairullahmail@gmail.com>
Signed-off-by: abubakar4360 <abubakarabbasi541@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Uzair Ullah <uzairullahmail@gmail.com> Co-authored-by: abubakar4360 <abubakarabbasi541@gmail.com> Co-authored-by: Muhammad Rizwan <awanrizwan615@gmail.com>
Added community abilities section with examples and links. Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Co-authored-by: Uzair Ullah <uzairullahmail@gmail.com>
New Local-category template that controls a Philips Hue bulb directly over Bluetooth with no Hue Bridge or internet required. Demonstrates a persistent BLE connection pattern: connect once at session start, run a natural-language voice loop, and only expose controls the bulb actually supports. templates/README.md updated to register the new template in the directory tree, core templates section, and quick reference. Local-category description clarified to note it cannot be tested in the Live Editor. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Updated README to reflect new features and API usage for Ambient Sounds. Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
Refactor ambient sound player to use Freesound API, implement new routing and streaming logic. Signed-off-by: Uzair Ullah <uzairullahmail@gmail.com>
✅ Community PR Path Check — PassedAll changed files are inside the |
🔀 Branch Merge CheckPR direction: ✅ Passed — |
🔍 Lint Results✅
|
✅ Ability Validation Passed |
…ng answers The ability answered time, date, math, money and unit conversions. The same argument covers more ground: any question with one right answer and a formula that produces it should not go to a model. Adds grades, chemistry, physics, statistics and number tools behind one router, with plain arithmetic last. Four answers in the version already on this branch were wrong and are fixed: - An article before a digit added one, so "a 15 percent tip on 60 dollars" answered 16 percent. - The number formatter truncated instead of rounding at the integer boundary, so a value landing a hair below an integer was spoken one lower. - Surface gravity used volumetric mean radii, so Jupiter gave 25.92 against a published 24.79. Equatorial radii now agree with published surface gravity and escape velocity for eight bodies to better than half a percent. - A multi-word unit containing a shorter unit of the same dimension matched twice at overlapping positions and the shorter one could win, so "how many kilometers in a nautical mile" answered "1 mile is 1.61 kilometers". Unit factors are the exact defined values now; a truncated mile answered "a mile is 5279.99 feet". Molar masses are computed by parsing the formula against the element table rather than stored per compound, so a typo cannot become a confident answer. Anything resting on a convention says so: a letter grade names the 90/80/70 scale, a standard deviation says sample or population. Still one self-contained main.py, standard library only, and it still speaks nothing and returns the turn when it has no exact answer. 120 answers are asserted byte-exact upstream, with a suite that fuzzes four thousand utterances and rechecks every result a second independent way.
|
Updated this branch. Two reasons. The first is that four answers in the version you were looking at were wrong, and I would rather not have them merged. An article before a digit added one, so "a 15 percent tip on 60 dollars" answered 16 percent. The number formatter truncated instead of rounding at the integer boundary. Surface gravity used volumetric mean radii, so Jupiter gave 25.92 against a published 24.79. And a multi-word unit containing a shorter unit of the same dimension could lose the match to the shorter one, so "how many kilometers in a nautical mile" answered "1 mile is 1.61 kilometers". All four are fixed and each has a byte-exact test pinning it. The second is scope. The ability answered time, date, math, money and unit conversions, and the argument for those covers more ground than I first shipped: any question with one right answer and a formula that produces it should not go to a model. It now also does grades, chemistry, physics, statistics and number tools, behind one router with plain arithmetic last. Still one self-contained Happy to split this into a smaller PR if you would rather review it that way, or to drop the new domains and land only the four fixes. |
The near-integer check was also true of any number smaller than its tolerance, so a tiny value printed as 0. Pinned byte-exact along with six other answer paths that had never been exercised.
The time and date patterns matched bare 'the time', 'the date', 'what year' and 'what month', so 'what year did the war end' answered 'It's 2026' and 'what's the time zone in tokyo' answered the local time. That layer runs first, so nothing downstream could correct it. Patterns now name the whole question, and a tense marker or a second subject declines outright.
…ation once The capability's normalizer lowercased the transcript and stripped every symbol, which turns Ca(OH)2 into 'ca oh 2' — every chemistry formula was broken here. Normalization now happens once inside the engine and only touches what speech-to-text substitutes for words, so '20%' and a trailing '?' stop breaking the number patterns while capitals and parentheses survive. Found by speaking the phrases at a DevKit instead of typing them.
Astral, a deterministic layer for the exact-answer class.
It answers time, date, math, money, and unit conversions on its own, without the LLM. The whole engine is inlined in main.py, pattern and table code, like the official date-and-time base capability but generalized to the full exact-answer class. Works for any agent, no DevKit needed. When a request is not an exact-answer question it returns nothing, so the agent takes the turn and it never blocks.
Category: Skill. Suggested trigger words are in the README. Standard library only, no API keys.