UNPKG

codecrucible-synth

Version:

Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability

108 lines 3.25 kB
/** * Claude Code-inspired Security System * Based on research of Claude Code security patterns (2024-2025) * * Key principles from Claude Code: * 1. User consent for potentially dangerous operations * 2. Path validation and CWD restrictions * 3. Command whitelisting with user approval for outliers * 4. Context-aware security rather than blanket blocking * 5. Audit logging for security monitoring */ import { EventEmitter } from 'events'; export interface SecurityContext { operation: string; filePath?: string; command?: string; userInput: string; workingDirectory: string; timestamp: Date; } export interface SecurityDecision { action: 'allow' | 'block' | 'askUser'; reason: string; riskLevel: 'low' | 'medium' | 'high' | 'critical'; requiresConsent?: boolean; suggestedActions?: string[]; } export interface UserConsentRequest { id: string; context: SecurityContext; decision: SecurityDecision; message: string; options: ConsentOption[]; } export interface ConsentOption { id: string; label: string; description: string; action: 'allow' | 'deny' | 'modify'; } export interface SecurityPolicy { allowedPaths: string[]; blockedPaths: string[]; requireConsentForPaths: string[]; whitelistedCommands: string[]; dangerousCommands: string[]; requireConsentForCommands: string[]; allowedFileExtensions: string[]; dangerousFileExtensions: string[]; requireConsentForExtensions: string[]; developmentKeywords: string[]; sqlKeywords: string[]; systemCommands: string[]; } /** * Claude Code-inspired security system that prioritizes user consent over blanket blocking */ export declare class ClaudeCodeSecurity extends EventEmitter { private workingDirectory; private policy; private auditLog; private pendingConsentRequests; constructor(workingDirectory?: string); private createDefaultPolicy; /** * Main security evaluation method - Claude Code inspired */ evaluateSecurity(context: SecurityContext): Promise<SecurityDecision>; private evaluatePathSecurity; private evaluateCommandSecurity; private evaluateContentSecurity; /** * Determine if content is in a development context */ private isDevelopmentContext; /** * Determine if content is in a SQL/database context */ private isSQLContext; /** * Determine if content is in a system administration context */ private isSystemContext; /** * Check if content is requesting file modifications */ private isFileModificationRequest; private matchesPattern; /** * Create user consent request (Claude Code pattern) */ requestUserConsent(context: SecurityContext, decision: SecurityDecision): Promise<UserConsentRequest>; private formatConsentMessage; private createConsentOptions; /** * Get security audit log */ getAuditLog(limit?: number): SecurityContext[]; /** * Clear audit log (for privacy) */ clearAuditLog(): void; /** * Update security policy */ updatePolicy(updates: Partial<SecurityPolicy>): void; } //# sourceMappingURL=claude-code-security.d.ts.map