pb (NO COMPETENTE), 125 bytes
^w[B!0]{>}w[B!45]{<w[B=10]{t[T+1]b[0]}}v[X]vw[T!0]{vb[124]<[X]b[124]>w[B=0]{>}t[T-1]}w[X!1]{<b[95]}<w[B!0]{^}w[Y!-1]{b[47]>^}
La versión de pbi que necesita para ejecutar esta respuesta es más nueva que la pregunta. Hubiera funcionado en versiones anteriores, excepto que nunca pude permitir nuevas líneas en la entrada. Oh bien.
Primero, esto determina la altura del cuadro contando nuevas líneas en la entrada. Una vez que sabe eso, va a la ubicación Y del lado derecho de la caja, baja a donde debe estar y dibuja las paredes y el piso, terminando con la tapa.
¡Mira esta divertida animación!
La pausa larga es el pincel que pasa sobre la entrada.
Sin golf:
^w[B!0]{>} # Go to the end of the input
w[B!45]{< # Head left until hitting a hyphen
w[B=10]{ # For each newline on the way:
t[T+1] # Count it
b[0] # Delete it
}
}
v[X] # Move down as far as it is right + the number of \n
v # ...plus one
w[T!0]{ # While the counting variable is nonzero:
vb[124] # Go down and draw a pipe
<[X]b[124] # Draw a pipe on the left as well
>w[B=0]{>} # Go back to the right side
t[T-1] # Decrement variable
}
w[X!1]{<b[95]} # Draw the bottom of the box
<w[B!0]{^} # Go up the left wall
w[Y!-1]{b[47]>^} # Go up and right, drawing the lid