  The canonical tree-decomposition theorem, given by Robertson and Seymour in
their seminal graph minors series, turns out to be one of the most important
tool in structural and algorithmic graph theory. In this paper, we provide the
canonical tree decomposition theorem for digraphs. More precisely, we construct
directed tree-decompositions of digraphs that distinguish all their tangles of
order $k$, for any fixed integer $k$, in polynomial time. As an application of
this canonical tree-decomposition theorem, we provide the following result for
the directed disjoint paths problem:
  For every fixed $k$ there is a polynomial-time algorithm which, on input $G$,
and source and terminal vertices $(s_1, t_1), \dots, (s_k, t_k)$, either
  1. determines that there is no set of pairwise vertex-disjoint paths
connecting each source $s_i$ to its terminal $t_i$, or
  2.finds a half-integral solution, i.e., outputs paths $P_1, \dots, P_k$ such
that $P_i$ links $s_i$ to $t_i$, so that every vertex of the graph is contained
in at most two paths. Given known hardness results for the directed disjoint
paths problem, our result cannot be improved for general digraphs, neither to
fixed-parameter tractability nor to fully vertex-disjoint directed paths. As
far as we are aware, this is the first time to obtain a tractable result for
the $k$-disjoint paths problem for general digraphs. We expect more
applications of our canonical tree-decomposition for directed results.
