Skip to content

Define Tool interface and ToolRegistry#24

Merged
IreneXY merged 1 commit intomainfrom
031901
Mar 25, 2026
Merged

Define Tool interface and ToolRegistry#24
IreneXY merged 1 commit intomainfrom
031901

Conversation

@IreneXY
Copy link
Copy Markdown
Member

@IreneXY IreneXY commented Mar 25, 2026

Summary

  • Add Tool abstract class: pluggable interface for defining custom tools (name, description, parameters, execute)
  • Add ToolRegistry: register/unregister tools at runtime, query enabled tools, build OpenAI-compatible tool definitions
  • Duplicate registration overwrites (friendly for pluggable scenarios)
  • enabledTools returns unmodifiable list

Design

Third parties implement the Tool interface to create custom tools. Core defines the interface, concrete tools live in core (cross-platform) or in CLI/App (platform-specific).

Test plan

  • dart analyze passes
  • dart format --set-exit-if-changed . passes
  • dart test — 50 tests passed (7 new ToolRegistry tests)

🤖 Generated with Claude Code

Co-Authored-By: Claude Code noreply@anthropic.com

Add pluggable tool system foundation:
- Tool abstract class (name, description, parameters, execute)
- ToolRegistry for registering/unregistering tools at runtime
- toToolDefinitions() builds OpenAI-compatible tools array
- Duplicate registration overwrites (friendly for pluggable scenarios)
- enabledTools returns unmodifiable list

Co-Authored-By: Claude Code <noreply@anthropic.com>
@IreneXY IreneXY merged commit 9bc1fce into main Mar 25, 2026
1 check passed
@IreneXY IreneXY deleted the 031901 branch March 25, 2026 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants