From 9a2a0c93cc30af979a26d957fef603e2378676be Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 16 Oct 2026 16:38:35 +0200 Subject: feat(assistant): fileops, the Do row's local operations One CLI for converting, extracting, merging and compressing staged files, answering with one JSON line. Results are written under a temporary name and renamed to the first free one, so a failure or a stop leaves nothing half written, and a stop kills the tool's whole process group. This ffmpeg has no libx264 and no AAC encoder, so MP4 is H.264 through VAAPI with MP3 audio, and audio extraction copies AAC, MP3 and Opus tracks as they are. The test builds its inputs and checks every result's type. Co-Authored-By: Claude Opus 5.5 --- docs/superpowers/specs/2026-10-16-file-ops-design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/superpowers/specs/2026-10-16-file-ops-design.md b/docs/superpowers/specs/2026-10-16-file-ops-design.md index 9f0d7c0..15f12ad 100644 --- a/docs/superpowers/specs/2026-10-16-file-ops-design.md +++ b/docs/superpowers/specs/2026-10-16-file-ops-design.md @@ -22,8 +22,8 @@ is overwritten. | pdf | To .md | (daemon `write`) | the model rewrites it as Markdown into `name.md` | | pdf | To images | `pdf-images` | `pdftoppm -r 150 -png` into a folder `name (pages)` | | pdf, 2+ | Merge | `pdf-merge` | `qpdf --empty --pages ... -- merged.pdf`, in staging order | -| video | Extract audio | `audio` | AAC copied into `.m4a` (`ffprobe` tells), anything else to `.mp3` at `-q:a 2` | -| video | To MP4 | `mp4` | libx264 + AAC | +| video | Extract audio | `audio` | the track copied as it is when it is AAC (`.m4a`), MP3 or Opus (`ffprobe` tells), anything else encoded to `.mp3` at `-q:a 2` | +| video | To MP4 | `mp4` | H.264 on the GPU (`h264_vaapi`) + MP3: this ffmpeg has no libx264 and no AAC encoder | | video | To WebM | `webm` | libvpx-vp9 + Opus | | video | To GIF | `gif` | 12 fps, 480 px wide, palettegen + paletteuse | | video | Trackcrop | `trackcrop` | `trackcrop in out` from PATH; it opens its own object picker window and the op waits for it | -- cgit v1.2.3