Summary
Runway publishes an official Node.js/TypeScript SDK, @runwayml/sdk on npm (latest v4.17.0, GitHub: runwayml/sdk-node), providing task-based execution APIs for generative video and image models (Gen-4, Gen-4 Turbo, Gemini image models hosted on Runway's platform). This repository has zero instrumentation for any Runway SDK surface — no wrapper, no diagnostics channel, no plugin, no auto-instrumentation config, no e2e scenario. This is a clear media-generation execution gap of the same kind already tracked for other providers in this repo's history (e.g. OpenAI images.generate(), Google GenAI generateImages(), HuggingFace textToImage()).
What instrumentation is missing
The @runwayml/sdk npm package exposes these execution surfaces, none of which are instrumented:
| SDK Method |
Description |
client.imageToVideo.create({ model, promptImage, promptText, ratio }) |
Generates video from a source image + prompt — returns an async task |
client.textToImage.create({ model, promptText, ratio }) |
Generates an image from a text prompt — returns an async task |
client.textToSpeech.create(...) / client.videoToVideo.create(...) |
Additional generative task types (speech synthesis, video restyling) |
task.waitForTaskOutput() |
Convenience polling helper that awaits and returns the generation result, or throws TaskFailedError/TaskTimedOutError |
client.tasks.retrieve(task_id) |
Retrieves status/output of a previously started generation task |
Every generation call returns a task record (id) that is polled to completion — a clear, well-bounded execution unit suitable for span-level tracing (start on create, end on task completion via waitForTaskOutput/retrieve).
No coverage in any instrumentation layer:
- No wrapper function (e.g.
wrapRunwayML()) in js/src/wrappers/
- No diagnostics channels or plugin in
js/src/instrumentation/plugins/
- No auto-instrumentation config in
js/src/auto-instrumentations/configs/ (not listed in all.ts)
- No e2e test scenario under
e2e/scenarios/
- Full repo grep for
runway (case-insensitive) returns zero matches anywhere in the repository
Weekly downloads
Weekly downloads: 56,353 (as of 2026-08-31; window 2026-08-23 to 2026-08-29; https://api.npmjs.org/downloads/point/last-week/@runwayml/sdk)
Braintrust docs status
not_found. Runway / RunwayML does not appear anywhere on the Braintrust integrations index — https://www.braintrust.dev/docs/guides/tracing/integrations — which lists Tracing integrations, Agent frameworks, Eval frameworks, and Testing frameworks. There is no Runway entry in any category and no gateway/proxy workaround documented.
Upstream references
Braintrust docs sources checked
Local files inspected
js/src/wrappers/*.ts — full directory listing — no runway.ts/runwayml.ts wrapper
js/src/instrumentation/plugins/*.ts — full directory listing — no Runway channels or plugin file
js/src/auto-instrumentations/configs/all.ts — full config group list (openai, anthropic, bedrock, ai-sdk, claude-agent-sdk, cloudflare-*, cursor-sdk, openai-agents, google-genai, huggingface(+transformers), langchain/langgraph, langsmith, openrouter(+agent), mistral, ollama, google-adk, cohere, groq, genkit, github-copilot, pi-coding-agent, strands-agent-sdk, flue, voyageai) — no Runway entry
e2e/scenarios/ — no Runway test scenario
- Full repo grep for
runway (case-insensitive) — zero matches
Summary
Runway publishes an official Node.js/TypeScript SDK,
@runwayml/sdkon npm (latest v4.17.0, GitHub:runwayml/sdk-node), providing task-based execution APIs for generative video and image models (Gen-4, Gen-4 Turbo, Gemini image models hosted on Runway's platform). This repository has zero instrumentation for any Runway SDK surface — no wrapper, no diagnostics channel, no plugin, no auto-instrumentation config, no e2e scenario. This is a clear media-generation execution gap of the same kind already tracked for other providers in this repo's history (e.g. OpenAIimages.generate(), Google GenAIgenerateImages(), HuggingFacetextToImage()).What instrumentation is missing
The
@runwayml/sdknpm package exposes these execution surfaces, none of which are instrumented:client.imageToVideo.create({ model, promptImage, promptText, ratio })client.textToImage.create({ model, promptText, ratio })client.textToSpeech.create(...)/client.videoToVideo.create(...)task.waitForTaskOutput()TaskFailedError/TaskTimedOutErrorclient.tasks.retrieve(task_id)Every generation call returns a task record (
id) that is polled to completion — a clear, well-bounded execution unit suitable for span-level tracing (start oncreate, end on task completion viawaitForTaskOutput/retrieve).No coverage in any instrumentation layer:
wrapRunwayML()) injs/src/wrappers/js/src/instrumentation/plugins/js/src/auto-instrumentations/configs/(not listed inall.ts)e2e/scenarios/runway(case-insensitive) returns zero matches anywhere in the repositoryWeekly downloads
Weekly downloads: 56,353 (as of 2026-08-31; window 2026-08-23 to 2026-08-29; https://api.npmjs.org/downloads/point/last-week/@runwayml/sdk)
Braintrust docs status
not_found. Runway / RunwayML does not appear anywhere on the Braintrust integrations index — https://www.braintrust.dev/docs/guides/tracing/integrations — which lists Tracing integrations, Agent frameworks, Eval frameworks, and Testing frameworks. There is no Runway entry in any category and no gateway/proxy workaround documented.Upstream references
@runwayml/sdknpm package: https://www.npmjs.com/package/@runwayml/sdkBraintrust docs sources checked
Local files inspected
js/src/wrappers/*.ts— full directory listing — norunway.ts/runwayml.tswrapperjs/src/instrumentation/plugins/*.ts— full directory listing — no Runway channels or plugin filejs/src/auto-instrumentations/configs/all.ts— full config group list (openai, anthropic, bedrock, ai-sdk, claude-agent-sdk, cloudflare-*, cursor-sdk, openai-agents, google-genai, huggingface(+transformers), langchain/langgraph, langsmith, openrouter(+agent), mistral, ollama, google-adk, cohere, groq, genkit, github-copilot, pi-coding-agent, strands-agent-sdk, flue, voyageai) — no Runway entrye2e/scenarios/— no Runway test scenariorunway(case-insensitive) — zero matches