pub struct ToolRegistry {
pub todo_manager: Arc<TodoManager>,
pub plan_mode_state: Arc<PlanModeState>,
pub worktree_state: Arc<WorktreeState>,
pub permission_queue: Option<Arc<PermissionQueue>>,
pub plan_approval_queue: Option<Arc<PlanApprovalQueue>>,
/* private fields */
}Expand description
工具注册中心,管理所有可用工具及其相关状态
Fields§
§todo_manager: Arc<TodoManager>待办事项管理器
plan_mode_state: Arc<PlanModeState>计划模式状态
worktree_state: Arc<WorktreeState>工作树状态(当前未使用)
permission_queue: Option<Arc<PermissionQueue>>权限请求队列
plan_approval_queue: Option<Arc<PlanApprovalQueue>>计划审批队列
Implementations§
Source§impl ToolRegistry
impl ToolRegistry
Sourcepub fn new(
skills: Vec<Skill>,
ask_tx: Sender<AskRequest>,
background_manager: Arc<BackgroundManager>,
task_manager: Arc<TaskManager>,
hook_manager: Arc<Mutex<HookManager>>,
invoked_skills: InvokedSkillsMap,
todos_file_path: PathBuf,
) -> Self
pub fn new( skills: Vec<Skill>, ask_tx: Sender<AskRequest>, background_manager: Arc<BackgroundManager>, task_manager: Arc<TaskManager>, hook_manager: Arc<Mutex<HookManager>>, invoked_skills: InvokedSkillsMap, todos_file_path: PathBuf, ) -> Self
创建工具注册中心,初始化所有内置工具及相关状态
Sourcepub fn execute(
&self,
name: &str,
arguments: &str,
cancelled: &Arc<AtomicBool>,
) -> ToolResult
pub fn execute( &self, name: &str, arguments: &str, cancelled: &Arc<AtomicBool>, ) -> ToolResult
执行指定名称的工具,自动处理计划模式下的权限限制
Sourcepub fn build_tools_summary_non_deferred(
&self,
disabled: &[String],
deferred: &[String],
) -> String
pub fn build_tools_summary_non_deferred( &self, disabled: &[String], deferred: &[String], ) -> String
构建工具摘要(排除 disabled 和 deferred 工具),用于 system prompt
Sourcepub fn to_llm_tools_non_deferred(
&self,
disabled: &[String],
deferred: &[String],
) -> Vec<ToolDefinition>
pub fn to_llm_tools_non_deferred( &self, disabled: &[String], deferred: &[String], ) -> Vec<ToolDefinition>
将未禁用、可用且非 deferred 的工具转换为 LLM 工具定义列表 LoadTool 始终包含在列表中,由调用方注入当前 deferred 工具列表到其描述末尾
Sourcepub fn tool_names(&self) -> Vec<&str>
pub fn tool_names(&self) -> Vec<&str>
返回所有已注册工具的名称列表
Sourcepub fn build_session_state_summary(&self) -> String
pub fn build_session_state_summary(&self) -> String
构建会话状态摘要,包含计划模式和工作树等当前状态信息
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ToolRegistry
impl !RefUnwindSafe for ToolRegistry
impl Send for ToolRegistry
impl Sync for ToolRegistry
impl Unpin for ToolRegistry
impl UnsafeUnpin for ToolRegistry
impl !UnwindSafe for ToolRegistry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.