@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
TypeScript
/**
* 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;