/** * BASE CAPABILITY MODULE - SHARED INFRASTRUCTURE FOR ALL CAPABILITIES * * Provides common utilities, patterns, and infrastructure for all capability modules * to promote code reuse and maintain consistency across the codebase. */ import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js'; import type { ToolSuite, ToolDefinition } from '../core/toolRuntime.js'; export interface BaseCapabilityOptions { /** Working directory for operations */ workingDir?: string; /** Enable debug logging */ debug?: boolean; /** Enable evidence collection */ enableEvidence?: boolean; /** Authorization level for operations */ authorization?: 'basic' | 'elevated' | 'military' | 'full'; /** Emergency override capability */ emergencyOverride?: boolean; } export interface OperationResult { success: boolean; timestamp: string; operationId: string; metadata: Record; evidence?: string[]; errors?: string[]; } export interface EvidenceCollector { collect(data: any, type: string): string; save(fileName: string, content: any): string; cleanup(olderThan?: number): void; } export interface SecurityContext { hostname: string; username: string; platform: string; architecture: string; os: string; userAgent?: string; } export declare class SharedUtilities { static generateOperationId(prefix?: string): string; static createEvidenceDir(baseDir: string, operationId: string): string; static saveEvidence(evidenceDir: string, fileName: string, data: any): string; static getSecurityContext(): SecurityContext; static calculateChecksum(data: string | Buffer): string; static validateAuthorization(current: string, required: string): boolean; static createToolDefinition>(name: string, description: string, parameters: any, handler: (args: T) => Promise | string): ToolDefinition; } export declare abstract class BaseCapabilityModule implements CapabilityModule { abstract readonly id: string; protected readonly options: BaseCapabilityOptions; protected readonly utilities: SharedUtilities; protected evidenceCollector: EvidenceCollector | null; constructor(options?: BaseCapabilityOptions); abstract create(context: CapabilityContext): Promise; protected initializeEvidenceCollector(): void; private cleanupOldFiles; protected log(message: string, level?: 'debug' | 'info' | 'warn' | 'error'): void; protected validateOperation(authorizationRequired?: string): boolean; protected createOperationResult(success: boolean, operationId: string, metadata?: Record, errors?: string[]): OperationResult; } export declare class ToolSuiteBuilder { private tools; private id; private description; constructor(id: string, description: string); addTool>(name: string, description: string, parameters: any, handler: (args: T) => Promise | string): this; build(): ToolSuite; } //# sourceMappingURL=baseCapability.d.ts.map