pub struct EditUserAccountTool;Expand description
Corrects a user’s email and/or its verification state, after the admin confirms.
Trait Implementations§
Source§impl ChatbotToolDeclaration for EditUserAccountTool
impl ChatbotToolDeclaration for EditUserAccountTool
Source§const NAME: &'static str = "edit_user_account"
const NAME: &'static str = "edit_user_account"
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::AdminSupportAccounts
const CATEGORY: ToolCategory = ToolCategory::AdminSupportAccounts
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>
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
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 EditUserAccountTool
impl ConfirmableActionTool for EditUserAccountTool
type Arguments = EditUserAccountArguments
Source§type Facts = ()
type Facts = ()
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>
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.
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)>
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>
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.fn declined_output(_arguments: &Self::Arguments) -> String
Auto Trait Implementations§
impl Freeze for EditUserAccountTool
impl RefUnwindSafe for EditUserAccountTool
impl Send for EditUserAccountTool
impl Sync for EditUserAccountTool
impl Unpin for EditUserAccountTool
impl UnsafeUnpin for EditUserAccountTool
impl UnwindSafe for EditUserAccountTool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
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 Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
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,
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,
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,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more