docs: update tool_override resolution order after praisonai-tools discovery moved to canonical resolver#2117
Conversation
…covery moved to canonical resolver (fixes #2109) Co-authored-by: Mervin Praison <MervinPraison@users.noreply.github.com>
|
@coderabbitai review |
|
/review |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
✅ Action performedReview finished.
|
|
Warning Review limit reached
Next review available in: 35 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@gemini review this PR |
There was a problem hiding this comment.
Code Review
This pull request updates the documentation across several files to reflect changes from issue #3122, clarifying the tool resolution order and the separation of responsibilities between the wrapper and the canonical ToolResolver. The review feedback points out a potential discrepancy where the codebase might still contain the old package discovery block that the documentation claims was removed, and suggests breaking up an extremely long line in the markdown file to improve readability.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| # praisonai-tools package discovery and praisonaiagents built-ins are | ||
| # NOT re-implemented here (fix: #3122). They are owned by | ||
| # praisonai_code.tool_resolver.ToolResolver, which resolve_tools() | ||
| # consults after this registry. See /docs/features/tool-resolver. |
There was a problem hiding this comment.
The documentation states that praisonai-tools package discovery is no longer re-implemented in the wrapper (create_tool_registry_with_overrides). However, in praisonai/templates/tool_override.py (lines 359-369), the package discovery block for praisonai_tools is still present and active. To avoid user confusion and maintain consistency between the documentation and the codebase, please ensure that the code in tool_override.py is updated to remove this block (as part of resolving #3122), or update this documentation to reflect the current state of the code.
| ### CLI and recipes use the same resolver (PR #1857, PR #2059, PR #2499, PR #2935) | ||
|
|
||
| `praisonai --tools tavily_search,my_tool "..."` goes through `ToolResolver.resolve(name, instantiate=True)`, identical to the YAML path. Recipe and template tool loading via `resolve_tools()` also delegates to `ToolResolver` (PR #2059), so wrapper `ToolRegistry` registrations, `praisonai-tools` package tools, and core SDK plugin tools are reachable from recipes and templates — not just the agent build path. As of PR #2499 the same chain also handles `--rewrite-tools` (query-rewrite), `--expand-tools` (prompt-expansion), and `research --tools`. As of PR #2935, the file-path branches of the same four flags also route through `ToolResolver.load_functions_from_module` (previously each site hand-rolled `_safe_loader.load_user_module + inspect.getmembers`). | ||
| `praisonai --tools tavily_search,my_tool "..."` goes through `ToolResolver.resolve(name, instantiate=True)`, identical to the YAML path. Recipe and template tool loading via `resolve_tools()` also delegates to `ToolResolver` (PR #2059), so wrapper `ToolRegistry` registrations, `praisonai-tools` package tools, and core SDK plugin tools are reachable from recipes and templates — not just the agent build path. As of PR #2499 the same chain also handles `--rewrite-tools` (query-rewrite), `--expand-tools` (prompt-expansion), and `research --tools`. As of PR #2935, the file-path branches of the same four flags also route through `ToolResolver.load_functions_from_module` (previously each site hand-rolled `_safe_loader.load_user_module + inspect.getmembers`). As of [PraisonAI#3122](https://github.com/MervinPraison/PraisonAI/issues/3122) the wrapper no longer re-implements `praisonai-tools` package discovery — that source is now owned exclusively by `ToolResolver._resolve_from_praisonai_tools`, keeping a single implementation for external-tool discovery. The wrapper still builds its unique sources (default dirs, `TEMPLATE.yaml` `tools_sources`, `--tools`/`--tools-dir`, and the `PRAISONAI_ALLOW_TEMPLATE_TOOLS`-gated `tools.py` autoload) and hands them to the resolver as a registry. |
|
Merge gate scan — eligible for assessment. Claude merge gate will assess and may auto-merge if |
|
MERGE_GATE_VERDICT: APPROVE All checklist items pass:
|
|
Merged by Claude PR merge gate ( |
|
Merge gate scan — not eligible for auto-merge.
Actions: wait for CI and the Claude review chain, or add label |
Fixes #2109
Summary
Updates docs to reflect that
create_tool_registry_with_overridesno longer re-implementspraisonai-toolspackage discovery — that source is now owned solely by the canonicalToolResolver(upstream PraisonAI#3122 / commit 9be1149). The wrapper still owns its five unique sources and the security-gatedtools.pyautoload.Changes
docs/cli/tools-override.mdxdocs/features/security-environment-variables.mdx— added a<Note>underPRAISONAI_ALLOW_TEMPLATE_TOOLSexplaining why the two_ALLOW_*_TOOLSgates coexist after #3122.docs/features/tool-resolver.mdx— extended the CLI/recipe resolver note with a one-sentence #3122 cross-reference.No new pages created.
docs/concepts/*untouched. Nodocs.jsonchanges required.Generated with Claude Code