@r-huijts/ethics-vibe-check
Version:
🛡️ Make AI interrupt itself and challenge your thinking. Turns Claude into a philosophical sparring partner who actively contradicts comfortable conversations and challenges confirmation bias.
67 lines (66 loc) • 2.71 kB
TypeScript
export declare const ETHICAL_CATEGORIES: readonly ["Privacy Violation", "Bias and Discrimination", "Misinformation", "Harmful Content", "Manipulation", "Consent Issues", "Transparency Concerns", "Fairness Issues", "Confirmation Bias", "Other"];
export type EthicalCategory = typeof ETHICAL_CATEGORIES[number];
export interface EthicalConcern {
id: string;
timestamp: string;
concern: string;
category: EthicalCategory;
severity: 'low' | 'medium' | 'high' | 'critical';
recommendation: string;
sessionId?: string;
successScore?: number;
contextTags?: string[];
relatedConcernIds?: string[];
}
export interface WeightedConcern extends EthicalConcern {
weight: number;
recencyScore: number;
severityScore: number;
successScore: number;
relevanceScore: number;
totalScore: number;
}
export interface CategoryStats {
category: EthicalCategory;
count: number;
recentExample?: EthicalConcern;
averageWeight?: number;
totalSuccessScore?: number;
averageRecency?: number;
}
export declare function addEthicalConcern(concern: Omit<EthicalConcern, 'id' | 'timestamp'>): boolean;
export declare function storeConcern(concern: EthicalConcern): boolean;
export declare function getAllConcerns(): EthicalConcern[];
export declare function getConcernsByCategory(category: EthicalCategory): EthicalConcern[];
export declare function getConcernsBySession(sessionId: string): EthicalConcern[];
export declare function getConcernsBySeverity(severity: 'low' | 'medium' | 'high' | 'critical'): EthicalConcern[];
export declare function clearAllConcerns(): boolean;
export declare function getCategoryStats(): CategoryStats[];
export declare function getRecentConcerns(limit?: number): EthicalConcern[];
export declare function getWeightedConcerns(options?: {
limit?: number;
context?: string;
category?: EthicalCategory;
sessionId?: string;
minWeight?: number;
weights?: {
recency: number;
severity: number;
success: number;
relevance: number;
};
}): WeightedConcern[];
export declare function getWeightedCategoryPatterns(category: EthicalCategory, limit?: number): WeightedConcern[];
export declare function getWeightedSessionPatterns(sessionId: string, limit?: number): WeightedConcern[];
export declare function updateConcernSuccessScore(concernId: string, successScore: number): boolean;
export declare function getPatternInsights(): {
totalConcerns: number;
averageWeight: number;
categoryDistribution: {
[key: string]: number;
};
recentTrends: {
category: EthicalCategory;
trend: 'increasing' | 'decreasing' | 'stable';
}[];
};