- 0561402: Docs:
UploadedAsset.ref(runflow://assets/{id}) is now the recommended model input — the API resolves refs to freshly signed URLs at dispatch (shipped backend-side, formerly RUN-418), so refs never expire in your hands.urlremains the short-TTL signed HTTPS URL for immediate browser use. Examples and JSDoc updated accordingly; no runtime changes.
-
991b164: Add
rf.assets.upload(file)— the browser-safe presigned upload flow (create session → PUT to storage → confirm) with transient-failure retry and a size-scaled PUT timeout, returning a model-ready signed HTTPSurlplus the stablerunflow://assets/{id}ref. Fixes the most common external-fork failure: browser file uploads ending up asdata:URIs that models reject with a 422. Addrf.assets.get(id)to re-mint an expired signed url (store theid, not theurl).Export
composePinPrompt,composeRegionPrompt,pinRegion, andPinPoint— the pin→region prompt convention (3×3 grid baked into the edit prompt) that previously existed only as private copies inside the studio bundle.Hardening: proxy mode (
baseUrl) now never sendsAuthorization, even whenapiKeyis also passed (the documented contract); presigned-URL query strings are redacted from error messages; non-httpsupload_urls are refused. NewRunflowErrorCodeunion for autocompletablecatchhandling.