UNPKG

@xynehq/jaf

Version:

Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools

57 lines 2.6 kB
/** * Standardized tool result types for consistent error handling */ export type ToolResultStatus = 'success' | 'error' | 'validation_error' | 'permission_denied' | 'not_found'; export interface ToolResult<T = any> { readonly status: ToolResultStatus; readonly data?: T; readonly error?: { readonly code: string; readonly message: string; readonly details?: any; }; readonly metadata?: { readonly executionTimeMs?: number; readonly toolName?: string; readonly [key: string]: any; }; } export declare const ToolErrorCodes: { readonly INVALID_INPUT: "INVALID_INPUT"; readonly MISSING_REQUIRED_FIELD: "MISSING_REQUIRED_FIELD"; readonly INVALID_FORMAT: "INVALID_FORMAT"; readonly PERMISSION_DENIED: "PERMISSION_DENIED"; readonly INSUFFICIENT_PERMISSIONS: "INSUFFICIENT_PERMISSIONS"; readonly NOT_FOUND: "NOT_FOUND"; readonly RESOURCE_UNAVAILABLE: "RESOURCE_UNAVAILABLE"; readonly EXECUTION_FAILED: "EXECUTION_FAILED"; readonly TIMEOUT: "TIMEOUT"; readonly EXTERNAL_SERVICE_ERROR: "EXTERNAL_SERVICE_ERROR"; readonly UNKNOWN_ERROR: "UNKNOWN_ERROR"; }; export type ToolErrorCode = typeof ToolErrorCodes[keyof typeof ToolErrorCodes]; /** * Helper functions for creating standardized tool results */ export declare class ToolResponse { static success<T>(data: T, metadata?: ToolResult['metadata']): ToolResult<T>; static error(code: ToolErrorCode, message: string, details?: any, metadata?: ToolResult['metadata']): ToolResult; static validationError(message: string, details?: any, metadata?: ToolResult['metadata']): ToolResult; static permissionDenied(message: string, requiredPermissions?: string[], metadata?: ToolResult['metadata']): ToolResult; static notFound(resource: string, identifier?: string, metadata?: ToolResult['metadata']): ToolResult; } /** * Tool execution wrapper that provides standardized error handling */ export declare function withErrorHandling<TArgs, TResult, TContext>(toolName: string, executor: (args: TArgs, context: TContext) => Promise<TResult> | TResult): (args: TArgs, context: TContext) => Promise<ToolResult<TResult>>; /** * Permission checking helper */ export declare function requirePermissions<TContext extends { permissions?: string[]; }>(requiredPermissions: string[]): (context: TContext) => ToolResult | null; /** * Convert ToolResult to string for backward compatibility with existing tools */ export declare function toolResultToString(result: ToolResult): string; //# sourceMappingURL=tool-results.d.ts.map