| 72 | timeout_seconds: z.number().int().min(5).max(1800).optional().describe('Default 600. For long encodes prefer background_job_start.'), |
| 73 | }); |
| 74 | export class MediaTransformTool extends Tool<z.infer<typeof TransformArgs>> { |
| 75 | name = 'media_transform'; |
| 76 | description = 'Transform media with ffmpeg: convert (transcode), trim (cut a segment), extract_frame (single still), resize (scale), extract_audio, and concat (join multiple clips in order into one final video). Writes the output file → destructive, permission-gated. For long encodes, consider background_job_start with a shell ffmpeg command so it does not block.'; |
| 77 | isReadOnly = false; isDestructive = true; argsSchema = TransformArgs; |
nothing calls this directly
no outgoing calls
no test coverage detected