Move PSD generation off the server. The image-generation API only
produces raster formats, so drop the PSD request path, the oov/psd
decoder, and the LayeredDocumentGenerator wiring. Layer separation now
returns clean background, foreground, and text_render_data artifacts
into a transparent frame.
Export that frame (or any image node) as PSD from the canvas context
menu: ag-psd assembles layers, rotation/flip, opacity, editable text,
and stroke effects from the current canvas state at download time.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Treat a generator task as completed when it produces artifacts, when a
task message reaches a terminal state, or when the project is ready —
even if the project is still exploring another concurrent thread. Adds
generatorTaskMessageCompleted to classify terminal task messages and
covers ready-without-messages and concurrent-thread cases with tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>