validated function

AppductToolHandler validated(
  1. Map<String, Object?> inputSchema,
  2. AppductToolHandler handler
)

Wraps handler so arguments that do not match inputSchema answer tool_input_validation_error without reaching it.

Implementation

AppductToolHandler validated(
  Map<String, Object?> inputSchema,
  AppductToolHandler handler,
) {
  if (!appductEnabled) return handler;
  final schema = Schema.fromMap(inputSchema);
  return (args, context) {
    final errors = schema.validateSync(args);
    if (errors.isNotEmpty) {
      throw ToolFailure(
        'tool_input_validation_error',
        errors.map((e) => e.toErrorString()).join('; '),
      );
    }
    return handler(args, context);
  };
}