@elsikora/commitizen-plugin-commitlint-ai
Version:
AI-powered Commitizen adapter with Commitlint integration
44 lines (43 loc) • 1.37 kB
TypeScript
import type { CommitMessage } from '../../domain/entity/commit-message.entity';
import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
/**
* Context for generating commit messages
*/
export interface ILlmPromptContext {
body?: {
description?: string;
};
diff?: string;
files?: string;
rules?: Record<string, unknown>;
scopeDescription?: string;
subject: {
description?: string;
maxLength?: number;
minLength?: number;
};
typeDescription?: string;
typeDescriptions?: Record<string, {
description: string;
emoji?: string;
}>;
typeEnum?: Array<string>;
}
/**
* Interface for LLM services
*/
export interface ILlmService {
/**
* Generate a commit message using the LLM
* @param context - The context for generating the commit message
* @param configuration - The LLM configuration
* @returns Promise resolving to the generated commit message
*/
generateCommitMessage(context: ILlmPromptContext, configuration: LLMConfiguration): Promise<CommitMessage>;
/**
* Check if the service supports the given configuration
* @param configuration - The LLM configuration to check
* @returns True if the service supports the configuration
*/
supports(configuration: LLMConfiguration): boolean;
}