Files
Spencer Qian e380792490 video-analysis: mode parameter (both/music/sfx), 480 s cap (#23)
* video-analysis: mode parameter (both/music/sfx), 480 s cap

analyze_video / POST /v1/video-analysis now takes an optional `mode`:
`both` (the default) returns the music-direction brief (`segments` +
`variations`) and a sound-design brief (`sfx_segments` + one whole-clip
`sfx_prompt`); `music` returns the pre-change shape; `sfx` returns only
the sound-design brief in `segments`/`variations`. The result always
echoes `mode`. Same price for all three.

The duration cap moved from 360 s to 480 s (8 min), matching the
SFX/sound endpoints; the duration tip had also still called those 180 s.

Every transport example keeps working with no `mode` and gains one line
asking for a single brief. `mode` is recorded on both MCP surfaces, the
CLI's `--mode`, and `must_document`, so a skill that drops it fails the
build. Plugin version 2.1.0 -> 2.2.0.

* tests: hold mode out of the local analyze_video surface until sonilo-mcp 0.25.0 ships

The validate workflow reinstalls the published sonilo-mcp and regenerates
the local block from it; the released package does not know mode yet, so
listing it under local would fail CI on every push. Repo precedent is to
record such a parameter under hosted and must_document only and add it to
local after the release — done here, with the note updated to say so.

* tests: sonilo-mcp 0.25.0 exposes mode on the local analyze_video surface

The held-out parameter joins local.analyze_video now that the package that
--refresh introspects is published with it; local_from records the release.
2026-09-17 23:36:01 -07:00
..