Skip to main content

ToolRegistry

Struct ToolRegistry 

Source
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

Source

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

创建工具注册中心,初始化所有内置工具及相关状态

Source

pub fn register(&mut self, tool: Box<dyn Tool>)

注册一个新工具到注册中心

Source

pub fn get(&self, name: &str) -> Option<&dyn Tool>

根据名称获取工具的引用

Source

pub fn execute( &self, name: &str, arguments: &str, cancelled: &Arc<AtomicBool>, ) -> ToolResult

执行指定名称的工具,自动处理计划模式下的权限限制

Source

pub fn build_tools_summary_non_deferred( &self, disabled: &[String], deferred: &[String], ) -> String

构建工具摘要(排除 disabled 和 deferred 工具),用于 system prompt

Source

pub fn to_llm_tools_non_deferred( &self, disabled: &[String], deferred: &[String], ) -> Vec<ToolDefinition>

将未禁用、可用且非 deferred 的工具转换为 LLM 工具定义列表 LoadTool 始终包含在列表中,由调用方注入当前 deferred 工具列表到其描述末尾

Source

pub fn tool_names(&self) -> Vec<&str>

返回所有已注册工具的名称列表

Source

pub fn build_session_state_summary(&self) -> String

构建会话状态摘要,包含计划模式和工作树等当前状态信息

Trait Implementations§

Source§

impl Debug for ToolRegistry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

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>

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)

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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more