Skip to main content

ResetExercisesTool

Struct ResetExercisesTool 

Source
pub struct ResetExercisesTool;
Expand description

Resets a user’s progress on selected exercises (or the whole course) after admin confirmation. Confirmed answers run Self::execute.

Trait Implementations§

Source§

impl ChatbotToolDeclaration for ResetExercisesTool

Source§

const NAME: &'static str = "reset_exercises"

The name the LLM calls this tool by. The registries dispatch on it and Self::get_tool_definition must advertise it, so the two cannot drift apart.
Source§

const CATEGORY: ToolCategory = ToolCategory::AdminSupportLearningProgress

Which configured category of tools this belongs to. A chatbot offers it only if its configuration lists this category; the caller must still be authorized for it.
Source§

fn offer_requirements(user_context: &ChatbotTurnContext) -> Vec<ToolRequirement>

What the caller must be allowed to do against the turn itself for this tool to be offered to the LLM at all. Read more
Source§

fn get_tool_definition() -> AzureLLMFunctionToolDefinition

The definition sent to the LLM as part of a chat request. Azure rejects it unless strict is true and the parameter schema forbids additional properties.
Source§

impl ConfirmableActionTool for ResetExercisesTool

Source§

type Arguments = ResetExercisesArguments

Source§

type Facts = ResetExercisesFacts

Extra facts Self::execute gathers while performing the mutation, used only to decide what Self::output_description_instructions should mention for this particular call. () for a tool with nothing worth gating on.
Source§

fn call_requirements( arguments: &Self::Arguments, _user_context: &ChatbotTurnContext, ) -> Vec<ToolRequirement>

What the caller must be allowed to do against what this call actually targets. Checked before the turn suspends on the call and again immediately before the mutation runs.
Source§

fn parse_arguments(arguments: &str) -> ChatbotResult<Self::Arguments>

Source§

async fn execute( conn: &mut PgConnection, _app_config: &ApplicationConfiguration, arguments: &Self::Arguments, authorization: &ToolAuthorization<Self>, ) -> ChatbotResult<(ExecutedAction, Self::Facts)>

Performs the mutation. Must re-verify every model-supplied display field against the database (case-insensitively for emails) and refuse with a descriptive error rather than mutate on a mismatch, so a wrong or stale display can never mutate a row it doesn’t describe. authorization both proves the confirming admin was checked against this call’s own requirements and names them, so the mutation cannot run ahead of the check and the audit row cannot credit anyone else.
Source§

fn output_description_instructions( arguments: &Self::Arguments, facts: Option<&Self::Facts>, app_config: &ApplicationConfiguration, ) -> Option<String>

Just-in-time instructions for the LLM on how to describe the outcome. facts is None on a declined answer (nothing executed) and Some after a successful Self::execute, so instructions can be conditioned on what this call actually did instead of always including everything that could ever be true. app_config is available on both branches (unlike facts) so a verification link can be offered even on a decline.
Source§

fn declined_output(_arguments: &Self::Arguments) -> String

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

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

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [Layered].
§

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

§

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
§

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
§

impl<T> ServiceExt for T

§

fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>
where Self: Sized,

Apply a transformation to the response body. Read more
§

fn decompression(self) -> Decompression<Self>
where Self: Sized,

Decompress response bodies. Read more
§

fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>
where Self: Sized,

High level tracing that classifies responses using HTTP status codes. Read more
§

fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>
where Self: Sized,

High level tracing that classifies responses using gRPC headers. Read more
§

fn follow_redirects(self) -> FollowRedirect<Self>
where Self: Sized,

Follow redirect resposes using the Standard policy. 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.
§

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
§

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,

§

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

§

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