/** * ThinkHive SDK v3.0 - Human Review API * * API for managing human review queue, calibration sets, and reviewer management */ export type HumanReviewStatus = 'pending' | 'in_progress' | 'completed' | 'skipped' | 'expired'; export type HumanReviewType = 'disagreement' | 'low_confidence' | 'calibration' | 'random_sample' | 'flagged'; export interface HumanReviewQueueItem { id: string; companyId: string; agentId: string; traceId: string; criterionId?: string; reviewType: HumanReviewType; priority: number; status: HumanReviewStatus; llmScore?: number; llmPassed?: boolean; llmReasoning?: string; llmConfidence?: number; reviewerId?: string; humanScore?: number; humanPassed?: boolean; humanReasoning?: string; reviewDurationMs?: number; isCalibrationSample?: boolean; calibrationSetId?: string; expectedScore?: number; expectedPassed?: boolean; expiresAt?: string; claimedAt?: string; completedAt?: string; createdAt: string; } export interface AddToQueueOptions { traceId: string; criterionId?: string; agentId: string; reviewType: HumanReviewType; priority?: number; llmScore?: number; llmPassed?: boolean; llmReasoning?: string; llmConfidence?: number; isCalibrationSample?: boolean; calibrationSetId?: string; expectedScore?: number; expectedPassed?: boolean; expiresInMs?: number; metadata?: Record; } export interface SubmitReviewOptions { passed: boolean; score: number; reasoning: string; durationMs: number; } export interface CalibrationSet { id: string; companyId: string; agentId?: string; name: string; description?: string; targetSampleCount: number; currentSampleCount: number; minAgreementRate: number; passingScoreThreshold: number; criteriaIds: string[]; isActive: boolean; createdBy?: string; createdAt: string; } export interface CreateCalibrationSetOptions { name: string; description?: string; agentId: string; criterionId?: string; targetAgreement?: number; minSamples?: number; } export interface ReviewerCalibration { id: string; userId: string; calibrationSetId: string; totalReviews: number; agreementRate: number; meanAbsoluteError: number; isCertified: boolean; certifiedAt?: string; lastReviewAt?: string; } export interface QueueStats { pending: number; inProgress: number; completed: number; skipped: number; expired: number; avgReviewDurationMs?: number; avgAgreementRate?: number; } export interface ListQueueOptions { agentId?: string; status?: HumanReviewStatus; reviewType?: HumanReviewType; isCalibration?: boolean; minPriority?: number; limit?: number; offset?: number; } /** * Human Review API client for managing human review queue and calibration */ export declare const humanReview: { /** * Get pending review queue items * * @example * ```typescript * const items = await humanReview.getQueue({ * agentId: 'agent_123', * status: 'pending', * limit: 20, * }); * ``` */ getQueue(options?: ListQueueOptions): Promise; /** * Add an item to the review queue * * @example * ```typescript * const item = await humanReview.addToQueue({ * traceId: 'trace_123', * agentId: 'agent_123', * reviewType: 'disagreement', * priority: 80, * llmScore: 65, * llmPassed: true, * }); * ``` */ addToQueue(options: AddToQueueOptions): Promise; /** * Get a specific review item * * @example * ```typescript * const item = await humanReview.getItem('item_123'); * ``` */ getItem(itemId: string): Promise; /** * Claim a review item for processing * * @example * ```typescript * const item = await humanReview.claim('item_123'); * ``` */ claim(itemId: string): Promise; /** * Release a claimed review item * * @example * ```typescript * await humanReview.release('item_123'); * ``` */ release(itemId: string): Promise; /** * Skip a review item * * @example * ```typescript * await humanReview.skip('item_123'); * ``` */ skip(itemId: string): Promise; /** * Submit a review * * @example * ```typescript * const result = await humanReview.submit('item_123', { * passed: true, * score: 85, * reasoning: 'Response accurately addressed the query', * durationMs: 45000, * }); * ``` */ submit(itemId: string, review: SubmitReviewOptions): Promise; /** * Get queue statistics * * @example * ```typescript * const stats = await humanReview.getStats('agent_123'); * ``` */ getStats(agentId?: string): Promise; /** * Get next item for a reviewer * * @example * ```typescript * const nextItem = await humanReview.getNextItem('agent_123'); * ``` */ getNextItem(agentId?: string): Promise; /** * Get available review types * * @example * ```typescript * const types = await humanReview.getReviewTypes(); * ``` */ getReviewTypes(): Promise>; /** * Get calibration sets * * @example * ```typescript * const sets = await humanReview.getCalibrationSets('agent_123'); * ``` */ getCalibrationSets(agentId?: string): Promise; /** * Create a calibration set * * @example * ```typescript * const set = await humanReview.createCalibrationSet({ * name: 'Quality Calibration Q1', * agentId: 'agent_123', * targetAgreement: 0.85, * minSamples: 50, * }); * ``` */ createCalibrationSet(options: CreateCalibrationSetOptions): Promise; /** * Get a calibration set by ID * * @example * ```typescript * const set = await humanReview.getCalibrationSet('set_123'); * ``` */ getCalibrationSet(setId: string): Promise; /** * Get certified reviewers for a calibration set * * @example * ```typescript * const reviewers = await humanReview.getCertifiedReviewers('set_123'); * ``` */ getCertifiedReviewers(calibrationSetId: string): Promise; /** * Get reviewer calibration status * * @example * ```typescript * const calibrations = await humanReview.getReviewerCalibrations('user_123'); * ``` */ getReviewerCalibrations(userId: string): Promise; };