Skip to main content

ComposioTool

Struct ComposioTool 

pub struct ComposioTool { /* private fields */ }
Expand description

A tool that proxies actions to the Composio managed tool platform.

Implementations§

Source§

impl ComposioTool

Source

pub fn new( api_key: &str, default_entity_id: Option<&str>, security: Arc<SecurityPolicy>, ) -> ComposioTool

Source

pub async fn list_actions( &self, app_name: Option<&str>, ) -> Result<Vec<ComposioAction>, Error>

List available Composio apps/actions for the authenticated user. Uses the v3 endpoint.

Source

pub async fn execute_action( &self, action_name: &str, app_name_hint: Option<&str>, params: Value, text: Option<&str>, entity_id: Option<&str>, connected_account_ref: Option<&str>, ) -> Result<Value, Error>

Execute a Composio action/tool with given parameters. Uses the v3 endpoint.

Source

pub async fn get_connection_url( &self, app_name: Option<&str>, auth_config_id: Option<&str>, entity_id: &str, ) -> Result<ComposioConnectionLink, Error>

Get the OAuth connection URL for a specific app/toolkit or auth config. Uses the v3 endpoint.

Trait Implementations§

Source§

impl Attributable for ComposioTool

Source§

fn role(&self) -> Role

Source§

fn alias(&self) -> &str

Source§

fn tool_provenance(&self) -> ToolProvenance

Classifies whether a tool implementation is first-party native code or an extension. The conservative default prevents a new wrapper from inheriting native presentation privileges accidentally.
Source§

impl Tool for ComposioTool

Source§

fn name(&self) -> &str

Tool name (used in LLM function calling)
Source§

fn description(&self) -> &str

Human-readable description
Source§

fn parameters_schema(&self) -> Value

JSON schema for parameters
Source§

fn execute<'life0, 'async_trait>( &'life0 self, args: Value, ) -> Pin<Box<dyn Future<Output = Result<ToolResult, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, ComposioTool: 'async_trait,

Execute the tool with given arguments
Source§

fn output_schema(&self) -> Option<Value>

JSON schema describing the structured output this tool attaches to ToolOutput::data, when it declares one. None means the tool emits display text only; authoring surfaces fall back to sample-derived shapes from captured runs.
Source§

fn param_domains(&self) -> Vec<(&'static str, OptionDomain)>

Option domains for parameters whose value sets live in runtime config rather than the static schema (channel refs, peer targets, …). Surfaces resolve these through the runtime to render real selectable choices. Default: no domain-typed parameters.
Source§

fn invocation_triggers(&self) -> Vec<String>

Lowercase phrases that suggest an inbound message wants this tool — e.g. routing wording or configured destination names for a delivery tool. A pre-turn prefilter may scan the message against these and nudge the model to consider the tool; the tool itself is never called by the prefilter. Read more
Source§

fn spec(&self) -> ToolSpec

Assemble this tool’s spec. The default recomposes it from parameters_schema() and allocates a fresh Arc per call, so tools with large stored schemas override it to hand out Arc::clone instead (see McpToolWrapper). Delegating wrappers around a dyn Tool MUST forward spec() to the inner tool — relying on this default silently reintroduces a per-iteration deep clone of the inner schema and breaks Arc identity for downstream sharing.

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + 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
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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