/** * 기본 도구 클래스 * 모든 MCP 도구의 기본 구조를 제공 */ import type { ToolDefinition, ToolContext, ToolResult } from './types.js'; import type { z } from 'zod'; export declare abstract class BaseTool { protected name: string; protected description: string; protected inputSchema: z.ZodTypeAny | Record; constructor(name: string, description: string, inputSchema: z.ZodTypeAny | Record); /** * 도구 정의 반환 */ getDefinition(): ToolDefinition; /** * 도구 실행 (추상 메서드) */ abstract handle(params: unknown, context: ToolContext): Promise; /** * 성공 결과 생성 */ protected createSuccessResult(data: unknown): ToolResult; /** * 에러 결과 생성 * ToolResult 인터페이스를 준수하면서 기존 ToolError 형식도 지원 */ protected createErrorResult(error: string, message?: string, details?: string): ToolResult & { error: string; message?: string; details?: string; }; /** * 안전한 JSON 파싱 */ protected safeJsonParse(jsonString: string, fallback?: unknown): unknown; /** * 안전한 문자열 검증 */ protected validateString(value: unknown, fieldName: string, maxLength?: number): string; /** * 안전한 숫자 검증 */ protected validateNumber(value: unknown, fieldName: string, min?: number, max?: number): number; /** * 안전한 배열 검증 */ protected validateArray(value: unknown, fieldName: string, maxLength?: number): unknown[]; /** * 에러 로깅 */ protected logError(error: Error, context: string, additionalData?: Record): void; /** * 경고 로깅 */ protected logWarning(message: string, additionalData?: Record): void; /** * 정보 로깅 */ protected logInfo(message: string, additionalData?: Record): void; /** * 데이터베이스 연결 확인 */ protected validateDatabase(context: ToolContext): void; /** * 서비스 확인 (타입 가드) */ protected validateService(service: T | undefined, serviceName: string): asserts service is T; /** * 실패 감지 훅 (Phase 2) * Tool 실행 중 에러 발생 시 FailureDetector를 통해 실패 이벤트를 감지하고 큐에 추가 */ protected handleFailure(error: Error, params: unknown, context: ToolContext, executionTimeMs?: number): Promise; } //# sourceMappingURL=base-tool.d.ts.map