v0.44.0 — async job status/result tools + background media renders (#62)
Closes the last open sub-issue of epic #59 (kimi-k3 agent-toolset field feedback). The agent's media tools blocked with a capped wait; now a long render can be kicked off in the background and collected later.
What's new
background: trueonvenice_sfx/venice_music/venice_video— still gates on spend + queues (the charge lands up front), then returns a stateless job handle{status: "queued", queue_id, type, model, download_url?}before polling.venice_job_status(free) — one non-blocking probe of the render's retrieve route →processing/done/failed/not_found.venice_job_result(free) — fetches and writes the file once ready.max_wait=0(default) makes a single non-blocking attempt (returnsprocessingif not ready); a largermax_waitblock-polls, clamped to the server ceiling (300s audio / 900s video). Best-effort/completecleanup.
Notes
- Routing is keyed on
type: sfx/music →/audio/*, video →/video/*(+ the VPSdownload_url). - Wired into
venice chat --tools(built-ins 11 → 13) andvenice code's free tool set.mcp-serveexposure deferred (matching thevenice_vision/venice_modelsprecedent). - Stateless handle — the agent holds the queue_id; no on-disk job registry.
593 tests + lint green.