code: func DialIPC(ctx context.Context, endpoint string) (*Client, error) {
  	return newClient(ctx, func(ctx context.Context) (ServerCodec, error) {
  		conn, err := newIPCConnection(ctx, endpoint)
  		if err != nil {
  			return nil, err
  		}
  		return NewJSONCodec(conn), err
  	})
  }
docs: // DialIPC create a new IPC client that connects to the given endpoint. On Unix it assumes
  // the endpoint is the full path to a unix socket, and Windows the endpoint is an
  // identifier for a named pipe.
  //
  // The context is used for the initial connection establishment. It does not
  // affect subsequent interactions with the client.