Serverless job operations against api.runpod.ai/v2/<endpoint>.
Supports /run (async), /runsync (sync, ~90s cap), /status/:id,
/cancel/:id, and streaming via /stream/:id.
Summary
Functions
POST /<endpoint>/cancel/:job_id — cancel an in-flight job.
Async job submission — POST /<endpoint>/run.
Synchronous job submission — POST /<endpoint>/runsync.
GET /<endpoint>/status/:job_id — fetch job status.
Stream partial results — GET /<endpoint>/stream/:job_id.
Functions
POST /<endpoint>/cancel/:job_id — cancel an in-flight job.
Async job submission — POST /<endpoint>/run.
Synchronous job submission — POST /<endpoint>/runsync.
RunPod caps runsync at ~90 seconds server-side. We wrap in Task.async +
Task.yield/shutdown to guarantee we never block a caller past timeout_ms.
GET /<endpoint>/status/:job_id — fetch job status.
Stream partial results — GET /<endpoint>/stream/:job_id.
Returns a Stream that polls the stream endpoint with jittered backoff until
the job reaches a terminal state.