UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and

98 lines (97 loc) 3.88 kB
/** * Parameter Validation Utilities * Provides consistent parameter validation across all tool interfaces */ import type { ValidationSchema, StringArray } from "../types/typeAliases.js"; /** * Custom error class for parameter validation failures * Provides detailed information about validation errors including field context and suggestions */ export declare class ValidationError extends Error { field?: string | undefined; code?: string | undefined; suggestions?: StringArray | undefined; /** * Creates a new ValidationError * @param message - Human-readable error message * @param field - Name of the field that failed validation (optional) * @param code - Error code for programmatic handling (optional) * @param suggestions - Array of suggested fixes (optional) */ constructor(message: string, field?: string | undefined, code?: string | undefined, suggestions?: StringArray | undefined); } /** * Result of a validation operation * Contains validation status, errors, warnings, and suggestions for improvement */ export interface ValidationResult { /** Whether the validation passed without errors */ isValid: boolean; /** Array of validation errors that must be fixed */ errors: ValidationError[]; /** Array of warning messages that should be addressed */ warnings: string[]; /** Array of suggestions to improve the validated object */ suggestions: StringArray; } /** * Validate that a string parameter is present and non-empty */ export declare function validateRequiredString(value: unknown, fieldName: string, minLength?: number): ValidationError | null; /** * Validate that a number parameter is within acceptable range */ export declare function validateNumberRange(value: unknown, fieldName: string, min: number, max: number, required?: boolean): ValidationError | null; /** * Validate that a function parameter is async and has correct signature */ export declare function validateAsyncFunction(value: unknown, fieldName: string, expectedParams?: StringArray): ValidationError | null; /** * Validate object structure with required properties */ export declare function validateObjectStructure(value: unknown, fieldName: string, requiredProperties: StringArray, optionalProperties?: StringArray): ValidationError | null; /** * Validate tool name according to naming conventions */ export declare function validateToolName(name: unknown): ValidationError | null; /** * Validate tool description for clarity and usefulness */ export declare function validateToolDescription(description: unknown): ValidationError | null; /** * Validate MCP tool structure comprehensively */ export declare function validateMCPTool(tool: unknown): ValidationResult; /** * Validate text generation options */ export declare function validateTextGenerationOptions(options: unknown): ValidationResult; /** * Validate stream options */ export declare function validateStreamOptions(options: unknown): ValidationResult; /** * Validate generate options (unified interface) */ export declare function validateGenerateOptions(options: unknown): ValidationResult; /** * Validate tool execution parameters */ export declare function validateToolExecutionParams(toolName: string, params: unknown, expectedSchema?: ValidationSchema): ValidationResult; /** * Validate multiple tools at once */ export declare function validateToolBatch(tools: Record<string, unknown>): { isValid: boolean; validTools: string[]; invalidTools: string[]; results: Record<string, ValidationResult>; }; /** * Create a validation error summary for logging */ export declare function createValidationSummary(result: ValidationResult): string; /** * Check if validation result has only warnings (no errors) */ export declare function hasOnlyWarnings(result: ValidationResult): boolean;