Roo-Code/packages
Daniel 5a6dd58fcb
feat: add model-specific tool customization via excludedTools and includedTools (#9641)
* feat: add model-specific tool customization via excludedTools and includedTools

- Add excludedTools and includedTools to ModelInfo schema
- Implement applyModelToolCustomization helper to filter tools based on model config
- Integrate model tool filtering into filterNativeToolsForMode for native protocol
- Add comprehensive tests for tool customization functionality
- Wire up modelInfo through buildNativeToolsArray and Task.ts

This allows providers to override which native tools are available on a per-model basis via MODEL_DEFAULTS, enabling better control over tool selection for models with specific needs.

* feat: add customTools for opt-in only tools

- Add customTools array to ToolGroupConfig for defining opt-in only tools
- Update getToolsForMode() to exclude customTools from default tool set
- Modify applyModelToolCustomization() to include customTools only via includedTools
- Add tests for customTools functionality
- Add comprehensive documentation with usage examples

customTools allows defining tools that are NOT available by default,
even when a mode includes their group. These tools are only available
when explicitly included via a model's includedTools configuration.

This enables:
- Gradual rollout of experimental tools
- Model-specific specialized capabilities
- Safe experimentation without affecting default tool sets

* Add assertions for customTools tests per review feedback

* test: add tests for including customTools via includedTools

* Update src/core/prompts/tools/__tests__/filter-tools-for-mode.spec.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-27 13:45:32 -05:00
..
build Move the native tool call toggle to experimental settings (#9297) 2025-11-17 09:41:30 -05:00
cloud Test a provider-oriented welcome screen (#9484) 2025-11-21 17:37:30 -05:00
config-eslint Upgrade to ESLint 9 + share eslint config across workspaces (#3815) 2025-05-21 21:30:21 -07:00
config-typescript Move @roo-code/cloud to the Roo-Code repo (#7503) 2025-08-28 11:18:45 -07:00
evals Switch from asdf to mise-en-place in bare-metal evals setup script (#9548) 2025-11-24 15:39:47 -08:00
ipc chore: add changeset for v3.31.1 (#9153) 2025-11-10 11:52:10 -05:00
telemetry feat: migrate PostHog client to ph.roocode.com (#9402) 2025-11-19 14:44:22 -05:00
types feat: add model-specific tool customization via excludedTools and includedTools (#9641) 2025-11-27 13:45:32 -05:00