azd tool: add extension mechanism for tool manifest contributions
- Dominant language
- Go
- Stars
- 569
- Forks
- 364
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 136
Description
## Summary
The tool `Manager` hardcodes its manifest to `BuiltInTools()`. There is no mechanism for:
- Projects to declare tool requirements in `azure.yaml`
- Users to register custom tools via `azd config`
- Extensions to contribute tools programmatically
## Proposal
Accept `manifest []*ToolDefinition` as a parameter to `NewManager` (it already stores it as a field). Add a `WithAdditionalTools(...)` option or merge function. This preserves the built-in list as the default while enabling composition from project config, user config, or extensions.
## Acceptance Criteria
- [ ] `NewManager` accepts an extensible manifest source
- [ ] Built-in tools remain the default when no additional sources are provided
- [ ] Extension point documented for future project-level and user-level tool declarations
## Related
- Epic: #7845
- PR: #7450
Contributor guide
Assessment
This issue has not been assessed yet.