From 607934e74ffabc1dcce72b29fc28e92a669e54ce Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 16 Oct 2026 16:41:51 +0200 Subject: feat(assistant): the Do row of file operations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Conversions, extraction, merge and compression on the staged files from the file state, one at a time, with Stop; Compress… opens its formats. To .md goes through the daemon's write, the rest through fileops. The card keeps the result line, Saved name with Open and Folder, or the error, so another operation can follow on the same files. Results land in Documents/Assistant. Co-Authored-By: Claude Opus 5.5 --- desktop/assistant/README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'desktop/assistant/README.md') diff --git a/desktop/assistant/README.md b/desktop/assistant/README.md index 8c74343..41c01b3 100644 --- a/desktop/assistant/README.md +++ b/desktop/assistant/README.md @@ -21,6 +21,8 @@ what is typed. The protocol is specified in that repo, | `Md.js` | splits a message into prose and fenced code | | `Files.js` | a path's kind, and a dropped URL to a path | | `Presets.js` | the Ask row's canned questions and which kinds they fit | +| `Ops.js` | the Do row's operations and which kinds they fit | +| `fileops` | runs a Do operation: `fileops `, one JSON line back | Three states (`Assistant.qml`, `mode`): **entry**, one line, "How can I help you?"; **file**, files staged and nothing asked yet, with what can be @@ -74,5 +76,13 @@ Notes: `Prefs.setPresets`. Each prompt asks for an answer in the document's language, since the model answers in the language it is asked in. +- **Do operations** write to `$(xdg-user-dir DOCUMENTS)/Assistant`, under + the first free name, through a temporary file renamed on success; Stop + sends SIGTERM and fileops kills its tool's process group and removes the + partial result. To .md goes through the daemon's `write` instead. This + ffmpeg has no libx264 and no AAC encoder: To MP4 is `h264_vaapi` with MP3 + audio, and Extract audio copies AAC, MP3 and Opus tracks as they are. + Tests: `node desktop/assistant/test_md.js`, `test_files.js`, -`test_presets.js` (same directory). +`test_presets.js`, `test_ops.js`, and `/usr/bin/python3 +desktop/assistant/test_fileops.py` (same directory). -- cgit v1.2.3