Skip to main content

PythonTool

Struct PythonTool 

Source
pub struct PythonTool { /* private fields */ }
Expand description

A plugin’s Python tool.

Implementations§

Source§

impl PythonTool

Source

pub fn new( name: String, plugin: PluginRef, decl: ManifestTool, interpreter: Vec<OsString>, ) -> Option<Self>

decl must be a script tool (ToolKind::Script); None otherwise.

Source

pub fn with_python(self, python: Option<PluginPython>) -> Self

Run with the plugin’s own Python (built on first use if it has requirements).

Source

pub fn with_sandbox(self, sandbox: Option<Sandbox>) -> Self

Run the script in sandbox (see run_script_sandboxed); None: unsandboxed.

Source

pub fn with_timeout(self, timeout: Duration) -> Self

Source

pub fn plugin(&self) -> &PluginRef

Source

pub fn declared(&self) -> &ManifestTool

The tool as the manifest declares it (its name may differ from the name the model sees when that one was taken).

Trait Implementations§

Source§

impl Tool for PythonTool

Source§

fn spec(&self) -> ToolSpec

Source§

fn title(&self, args: &Value) -> String

Short human title for the finished call, e.g. “Wrote notes.md”. args is untrusted.
Source§

fn access(&self, _args: &Value) -> Access

What this call would do; drives the permission gate. Must not have side effects.
Source§

fn always_ask(&self, args: &Value) -> Option<String>

Some(warning) if this call must be approved by a person every time: no policy, “always allow” grant or --auto-approve lets it run (e.g. installing system-wide). The warning is shown on the approval card.
Source§

fn run(&self, args: &Value, ctx: &ToolContext<'_>) -> ToolOutput

Do it. args is untrusted model output: validate everything, never panic.
Source§

fn pending_title(&self, _args: &Value) -> String

Title for the call before and while it runs, and on approval cards, e.g. “Write notes.md”. Defaults to “Run ”.
Source§

fn preview(&self, args: &Value, _workspace: &Path) -> Option<Preview>

A readable account of what the call would do, for approval cards: e.g. a diff for a file write. Reads only, no side effects; bounded. Defaults to the key arguments.
Source§

fn concurrent(&self) -> bool

Calls of this tool start before the other calls of the same round and run side by side, each on a thread of its own (results still go back in call order). For tools that mostly wait, like delegate.

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> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.