openhands / src /api /cloud /proxy.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
3d700dd verified
Raw
History Blame Contribute Delete
1.18 kB
import type { CloudRequestOptions } from "@openhands/typescript-client/clients";
import type { Backend } from "../backend-registry/types";
import { createCloudClientForRuntime, createCloudClient } from "./client";
export interface CloudProxyRequest {
backend: Backend;
method: CloudRequestOptions["method"];
path: string;
body?: unknown;
headers?: Record<string, string>;
timeoutSeconds?: number;
hostOverride?: string;
authMode?: "bearer" | "session-api-key" | "none";
sessionApiKey?: string | null;
responseType?: "blob";
}
export async function callCloudProxy<TResponse = unknown>(
req: CloudProxyRequest,
): Promise<TResponse> {
const client = req.hostOverride
? createCloudClientForRuntime(req.backend)
: createCloudClient(req.backend);
return client.request<TResponse>({
method: req.method,
path: req.path,
body: req.body,
headers: req.headers,
timeoutSeconds: req.timeoutSeconds,
hostOverride: req.hostOverride,
authMode:
req.authMode === undefined || req.authMode === "bearer"
? "bearer"
: req.authMode,
sessionApiKey: req.sessionApiKey,
responseType: req.responseType,
});
}