pub struct ClaudeClient { /* private fields */ }Expand description
Claude client for commit message improvement.
Implementations§
Source§impl ClaudeClient
impl ClaudeClient
Sourcepub fn new(ai_client: Box<dyn AiClient>) -> Self
pub fn new(ai_client: Box<dyn AiClient>) -> Self
Creates a new Claude client with the provided AI client implementation.
Sourcepub fn get_ai_client_metadata(&self) -> AiClientMetadata
pub fn get_ai_client_metadata(&self) -> AiClientMetadata
Returns metadata about the AI client.
Sourcepub async fn send_message(
&self,
system_prompt: &str,
user_prompt: &str,
) -> Result<String>
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.
Sourcepub fn from_env(model: String) -> Result<Self>
pub fn from_env(model: String) -> Result<Self>
Creates a new Claude client with API key from environment variables.
Sourcepub async fn generate_amendments(
&self,
repo_view: &RepositoryView,
) -> Result<AmendmentFile>
pub async fn generate_amendments( &self, repo_view: &RepositoryView, ) -> Result<AmendmentFile>
Generates commit message amendments from repository view.
Sourcepub async fn generate_amendments_with_options(
&self,
repo_view: &RepositoryView,
fresh: bool,
) -> Result<AmendmentFile>
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.
For single-commit views whose full diff exceeds the token budget, splits the diff into file-level chunks and dispatches multiple AI requests, then merges results. Multi-commit views fall back to progressive diff reduction (the caller retries individually on failure).
Sourcepub async fn generate_contextual_amendments(
&self,
repo_view: &RepositoryView,
context: &CommitContext,
) -> Result<AmendmentFile>
pub async fn generate_contextual_amendments( &self, repo_view: &RepositoryView, context: &CommitContext, ) -> Result<AmendmentFile>
Generates contextual commit message amendments with enhanced intelligence.
Sourcepub async fn generate_contextual_amendments_with_options(
&self,
repo_view: &RepositoryView,
context: &CommitContext,
fresh: bool,
) -> Result<AmendmentFile>
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.
For single-commit views whose full diff exceeds the token budget, splits the diff into file-level chunks and dispatches multiple AI requests, then merges results. Multi-commit views fall back to progressive diff reduction.
Sourcepub async fn generate_pr_content(
&self,
repo_view: &RepositoryView,
pr_template: &str,
) -> Result<PrContent>
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.
Sourcepub async fn generate_pr_content_with_context(
&self,
repo_view: &RepositoryView,
pr_template: &str,
context: &CommitContext,
) -> Result<PrContent>
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).
Sourcepub async fn check_commits(
&self,
repo_view: &RepositoryView,
guidelines: Option<&str>,
include_suggestions: bool,
) -> Result<CheckReport>
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.
Sourcepub async fn check_commits_with_scopes(
&self,
repo_view: &RepositoryView,
guidelines: Option<&str>,
valid_scopes: &[ScopeDefinition],
include_suggestions: bool,
) -> Result<CheckReport>
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.
Sourcepub async fn refine_amendments_coherence(
&self,
items: &[(Amendment, String)],
) -> Result<AmendmentFile>
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.
Sourcepub async fn refine_checks_coherence(
&self,
items: &[(CommitCheckResult, String)],
repo_view: &RepositoryView,
) -> Result<CheckReport>
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.