Repository navigation
[transforms] Progressive tool discovery (#62) - #88
Merged
manish-wekan merged 11 commits intoOct 27, 2026
Merged
manish-wekan merged 11 commits into
manish-wekan merged 11 commits into
Conversation
Shreyavemana
marked this pull request as ready for review
October 25, 2026 11:45
AadarshM07
requested changes
Oct 26, 2026
Collaborator
|
Hi @Shreyavemana, changes looks good to me, I tested this locally and all the tests pass as well. I have mentioned a few changes in my review comments that I think should be addressed, Once those are updated i think it is good to go. cc: @manish-wekan |
5 tasks
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.
Summary
Adds progressive tool discovery on top of the transform pipeline (#61).
tools/listreturns onlysearch_tools,call_tooland any always-visible tools. Closes #62.Changes
SyntheticTool: a tool that exists only in a transform._invoke_toolruns its handler after argument validation.BaseSearchTransform: the two meta-tools (names configurable), always-visible tools (by name or tool metadata), browse mode for queries that name no task,limitclamped to 20, three detail levels (brief,detailed,full), andcall_tooldispatch back through the pipeline.RegexSearchTransform: literal case-insensitive match by default. Withallow_regex=Truethe pattern runs in a child process with a timeout, so the event loop never blocks. A timeout, invalid pattern or worker failure falls back to a literal match with a note.call_toolrejectssearch_toolsandcall_toolas targets. It re-enters the pipeline with this transform skipped, so the real tool's guards and validation still run.Tests
tests/test_transforms_search.py: list output, browse, ranking and tie-breaking, clamping, detail levels, regex (default, enabled, invalid, catastrophic(a+)+$),call_tooldispatch and rejection.tests/test_transforms_search_app.py: harness-leveltools/list, search then call, self-call rejection.test_oauth.pydiscovery tests failed once on a connection abort and passed on rerun and in the full suite. They look unrelated to this change.Dependency
Depends on #61. This PR is intended to target the Issue #61 feature branch until that work is merged into develop.