Skip to main content

ClaudeClient

Struct ClaudeClient 

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

Claude client for commit message improvement.

Implementations§

Source§

impl ClaudeClient

Source

pub fn new(ai_client: Box<dyn AiClient>) -> Self

Creates a new Claude client with the provided AI client implementation.

Source

pub fn get_ai_client_metadata(&self) -> AiClientMetadata

Returns metadata about the AI client.

Source

pub async fn send_message( &self, system_prompt: &str, user_prompt: &str, ) -> Result<String>

Sends a raw prompt to the AI client and returns the text response.

Source

pub fn from_env(model: String) -> Result<Self>

Creates a new Claude client with API key from environment variables.

Source

pub async fn generate_amendments( &self, repo_view: &RepositoryView, ) -> Result<AmendmentFile>

Generates commit message amendments from repository view.

Source

pub async fn generate_amendments_with_options( &self, repo_view: &RepositoryView, fresh: bool, ) -> Result<AmendmentFile>

Generates commit message amendments from repository view with options.

If fresh is true, ignores existing commit messages and generates new ones based solely on the diff content.

Source

pub async fn generate_contextual_amendments( &self, repo_view: &RepositoryView, context: &CommitContext, ) -> Result<AmendmentFile>

Generates contextual commit message amendments with enhanced intelligence.

Source

pub async fn generate_contextual_amendments_with_options( &self, repo_view: &RepositoryView, context: &CommitContext, fresh: bool, ) -> Result<AmendmentFile>

Generates contextual commit message amendments with options.

If fresh is true, ignores existing commit messages and generates new ones based solely on the diff content.

Source

pub async fn generate_pr_content( &self, repo_view: &RepositoryView, pr_template: &str, ) -> Result<PrContent>

Generates AI-powered PR content (title + description) from repository view and template.

Source

pub async fn generate_pr_content_with_context( &self, repo_view: &RepositoryView, pr_template: &str, context: &CommitContext, ) -> Result<PrContent>

Generates AI-powered PR content with project context (title + description).

Source

pub async fn check_commits( &self, repo_view: &RepositoryView, guidelines: Option<&str>, include_suggestions: bool, ) -> Result<CheckReport>

Checks commit messages against guidelines and returns a report.

Validates commit messages against project guidelines or defaults, returning a structured report with issues and suggestions.

Source

pub async fn check_commits_with_scopes( &self, repo_view: &RepositoryView, guidelines: Option<&str>, valid_scopes: &[ScopeDefinition], include_suggestions: bool, ) -> Result<CheckReport>

Checks commit messages against guidelines with valid scopes and returns a report.

Validates commit messages against project guidelines or defaults, using the provided valid scopes for scope validation.

Source

pub async fn refine_amendments_coherence( &self, items: &[(Amendment, String)], ) -> Result<AmendmentFile>

Refines individually-generated amendments for cross-commit coherence.

Sends commit summaries and proposed messages to the AI for a second pass that normalizes scopes, detects rename chains, and removes redundancy.

Source

pub async fn refine_checks_coherence( &self, items: &[(CommitCheckResult, String)], repo_view: &RepositoryView, ) -> Result<CheckReport>

Refines individually-generated check results for cross-commit coherence.

Sends commit summaries and check outcomes to the AI for a second pass that ensures consistent severity, detects cross-commit issues, and normalizes scope validation.

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.

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> 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, 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,