IntelliShellService

Struct IntelliShellService 

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

Service for managing user commands in IntelliShell

Implementations§

Source§

impl IntelliShellService

Source

pub async fn fix_command<F>( &self, command: &str, history: Option<&str>, on_progress: F, ) -> Result<Option<CommandFix>>
where F: FnMut(AiFixProgress),

Tries to fix a failing command by using an AI model.

If the command was successfully executed, this method will return None.

Source

pub async fn suggest_commands(&self, prompt: &str) -> Result<Vec<Command>>

Suggest command templates from an user prompt using an AI model

Source

pub async fn suggest_command( &self, cmd: impl AsRef<str>, description: impl AsRef<str>, ) -> Result<Option<Command>>

Suggest a command template from a command and description using an AI model

Source

pub async fn suggest_completion( &self, root_cmd: impl AsRef<str>, variable: impl AsRef<str>, description: impl AsRef<str>, ) -> Result<String>

Suggest a command for a dynamic completion using an AI model

Source§

impl IntelliShellService

Source

pub async fn is_storage_empty(&self) -> Result<bool>

Returns whether the commands storage is empty

Source

pub async fn insert_command(&self, command: Command) -> Result<Command>

Bookmarks a new command

Source

pub async fn update_command(&self, command: Command) -> Result<Command>

Updates an existing command

Source

pub async fn increment_command_usage(&self, command_id: Uuid) -> Result<i32>

Increases the usage of a command, returning the new usage count

Source

pub async fn delete_command(&self, id: Uuid) -> Result<()>

Deletes an existing command

Source

pub async fn search_tags( &self, mode: SearchMode, user_only: bool, query: &str, cursor_pos: usize, ) -> Result<Option<Vec<(String, u64, bool)>>>

Searches for tags based on a query string

Source

pub async fn search_commands( &self, mode: SearchMode, user_only: bool, query: &str, ) -> Result<(Vec<Command>, bool)>

Searches for commands based on a query string, returning both the command and whether it was an alias match

Source§

impl IntelliShellService

Source

pub async fn list_variable_completion_root_cmds(&self) -> Result<Vec<String>>

Lists all unique root commands for variable completions

Source

pub async fn list_variable_completions( &self, root_cmd: Option<&str>, ) -> Result<Vec<VariableCompletion>>

Lists variable completions, optionally filtering by root command and variable name

Source

pub async fn create_variable_completion( &self, var: VariableCompletion, ) -> Result<VariableCompletion>

Creates a new variable completion

Source

pub async fn update_variable_completion( &self, var: VariableCompletion, ) -> Result<VariableCompletion>

Updates a variable completion

Source

pub async fn delete_variable_completion(&self, id: Uuid) -> Result<()>

Deletes a variable completion

Source

pub async fn delete_variable_completion_by_key( &self, root_cmd: impl AsRef<str>, variable_name: impl AsRef<str>, ) -> Result<Option<VariableCompletion>>

Deletes a variable completion by its unique key, returning it

Source§

impl IntelliShellService

Source

pub async fn prepare_items_export( &self, filter: Option<Regex>, ) -> Result<ImportExportStream>

Prepare a stream of items to export, optionally filtering commands

Source

pub async fn export_items( &self, items: ImportExportStream, args: ExportItemsProcess, gist_config: GistConfig, ) -> Result<ExportStats>

Exports given commands and completions

Source§

impl IntelliShellService

Source

pub async fn import_items( &self, items: ImportExportStream, overwrite: bool, ) -> Result<ImportStats>

Import commands and completions

Source

pub async fn get_items_from_location( &self, args: ImportItemsProcess, gist_config: GistConfig, ) -> Result<ImportExportStream>

Returns a list of items to import from a location

Source§

impl IntelliShellService

Source

pub async fn clear_tldr_commands(&self, category: Option<String>) -> Result<u64>

Removes tldr commands matching the given criteria.

Returns the number of commands removed

Source

pub async fn fetch_tldr_commands( &self, category: Option<String>, commands: Vec<String>, progress: Sender<TldrFetchProgress>, ) -> Result<ImportStats>

Fetches and imports tldr commands matching the given criteria

Source§

impl IntelliShellService

Source

pub fn replace_command_variables( &self, command: String, values: Vec<(String, Option<String>)>, use_env: bool, ) -> Result<String, Vec<String>>

Replaces the variables found in a command with their values.

If one or more values are not found, they will be returned as an error.

Source

pub async fn search_variable_suggestions( &self, flat_root_cmd: &str, variable: &Variable, context: BTreeMap<String, String>, ) -> Result<(Vec<(u8, VariableSuggestion, f64)>, Option<impl Stream<Item = (f64, Result<Vec<String>, String>)> + use<>>)>

Searches suggestions for the given variable

Source

pub async fn insert_variable_value( &self, value: VariableValue, ) -> Result<VariableValue>

Inserts a new variable value

Source

pub async fn update_variable_value( &self, value: VariableValue, ) -> Result<VariableValue>

Updates an existing variable value

Source

pub async fn increment_variable_value_usage( &self, value_id: i32, context: BTreeMap<String, String>, ) -> Result<i32>

Increases the usage of a variable value, returning the new usage count

Source

pub async fn delete_variable_value(&self, id: i32) -> Result<()>

Deletes an existing variable value

Source§

impl IntelliShellService

Source

pub fn poll_new_version(&self) -> Option<Version>

Polls for a new version in a non-blocking manner.

This method returns immediately. On the first call, it spawns a background task to fetch the latest version. Subsequent calls will return None while the check is in progress. Once the check is finished, this method will consistently return the cached result.

Source

pub async fn check_new_version(&self) -> Result<Option<Version>>

Checks for a new version, performing a network request if necessary.

This method performs the version check immediately, blocking the caller.

For a non-blocking alternative that spawns a background task, see poll_new_version.

Source§

impl IntelliShellService

Source

pub fn new( storage: SqliteStorage, tuning: SearchTuning, ai: AiConfig, data_dir: impl AsRef<Path>, check_updates: bool, ) -> Self

Creates a new instance of IntelliShellService

Source

pub async fn query(&self, sql: String) -> Result<String>

Source

pub async fn load_workspace_items(&self) -> Result<bool>

Loads workspace commands and completions from the .intellishell file in the current working directory setting up the temporary tables in the database if they don’t exist.

Returns whether a workspace file was processed or not

Trait Implementations§

Source§

impl Clone for IntelliShellService

Source§

fn clone(&self) -> IntelliShellService

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<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
Source§

impl<T> ErasedDestructor for T
where T: 'static,