/** * Smart Triage & Auto-Labeling (v1.1.0) * * Classifies PRs as bug/feature/refactor/docs/test/chore using * keyword signals + embedding similarity against reference vectors. * Also suggests reviewers based on file-ownership history. */ import type { Embedder } from './embeddingPipeline.js'; export type PRLabel = 'bug' | 'feature' | 'refactor' | 'docs' | 'test' | 'chore'; export interface TriageResult { label: PRLabel; confidence: number; /** Secondary label if close in confidence */ secondaryLabel?: PRLabel; secondaryConfidence?: number; /** Suggested reviewers based on file ownership */ suggestedReviewers: ReviewerSuggestion[]; } export interface ReviewerSuggestion { author: string; /** Number of PRs touching these files */ fileOwnership: number; /** Relevance score 0-1 */ relevance: number; } export interface TriagePRInput { title: string; description: string; files: string[]; diff?: string; author?: string; } export declare class FileOwnershipTracker { /** Map of file path → Map of author → touch count */ private ownership; /** * Record that an author touched certain files */ recordPR(author: string, files: string[]): void; private incrementOwnership; /** * Suggest reviewers for the given files */ suggestReviewers(files: string[], excludeAuthor?: string, limit?: number): ReviewerSuggestion[]; /** * Export ownership data for persistence */ exportState(): Record>; /** * Import ownership data from persistence */ importState(state: Record>): void; } export declare class PRTriageClassifier { private embedder; private referenceEmbeddings?; private ownershipTracker; constructor(options?: { embedder?: Embedder; ownershipTracker?: FileOwnershipTracker; }); /** * Initialize reference embeddings for semantic classification. * Call once before using semantic mode. */ initEmbeddings(): Promise; /** * Classify a PR and suggest reviewers */ classify(pr: TriagePRInput): Promise; /** * Record a PR for file ownership tracking */ recordPR(author: string, files: string[]): void; /** * Get the ownership tracker for export/import */ getOwnershipTracker(): FileOwnershipTracker; private scoreByKeywords; private scoreByFileExtensions; private scoreByEmbedding; } //# sourceMappingURL=triage.d.ts.map