diff '--exclude=request.ts' --recursive --unified src/lib/api/core/ApiRequestOptions.ts src/lib/api.patched/core/ApiRequestOptions.ts
--- src/lib/api/core/ApiRequestOptions.ts	2024-08-12 23:10:35.305390567 +0000
+++ src/lib/api.patched/core/ApiRequestOptions.ts	2024-08-12 23:10:33.224679898 +0000
@@ -21,4 +21,6 @@
   readonly mediaType?: string;
   readonly responseHeader?: string;
   readonly errors?: Record<number, string>;
+  readonly responseType?: // DO NOT REMOVE
+  "arraybuffer" | "blob" | "document" | "json" | "text" | "stream";
 };
diff '--exclude=request.ts' --recursive --unified src/lib/api/core/OpenAPI.ts src/lib/api.patched/core/OpenAPI.ts
--- src/lib/api/core/OpenAPI.ts	2024-08-12 23:10:35.468215286 +0000
+++ src/lib/api.patched/core/OpenAPI.ts	2024-08-12 23:10:33.236278363 +0000
@@ -2,6 +2,8 @@
 /* istanbul ignore file */
 /* tslint:disable */
 /* eslint-disable */
+import type { SindriClient } from "lib/client"; // DO NOT REMOVE
+
 import type { ApiRequestOptions } from "./ApiRequestOptions";
 
 type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
@@ -17,6 +19,10 @@
   PASSWORD?: string | Resolver<string> | undefined;
   HEADERS?: Headers | Resolver<Headers> | undefined;
   ENCODE_PATH?: ((path: string) => string) | undefined;
+  // DO NOT REMOVE
+  // Shoehorn the SindriClient instance into the OpenAPIConfig type because it's the only shared
+  // data structure between the SDK client class and the request methods `requests.ts` module.
+  sindri?: SindriClient; // DO NOT REMOVE
 };
 
 export const OpenAPI: OpenAPIConfig = {
diff '--exclude=request.ts' --recursive --unified src/lib/api/services/CircuitsService.ts src/lib/api.patched/services/CircuitsService.ts
--- src/lib/api/services/CircuitsService.ts	2024-08-12 23:10:36.233765143 +0000
+++ src/lib/api.patched/services/CircuitsService.ts	2024-08-12 23:10:33.245030941 +0000
@@ -19,17 +19,21 @@
    * @returns CircuitInfoResponse Created
    * @throws ApiError
    */
-  public circuitCreate(formData: {
-    files: Array<Blob>;
-    /**
-     * An arbitrary mapping of metadata keys to string values. This can be used to track additional information about the circuit such as an ID from an external system.
-     */
-    meta?: Record<string, string>;
-    /**
-     * Tags for a circuit.
-     */
-    tags?: Array<string>;
-  }): CancelablePromise<CircuitInfoResponse> {
+  public circuitCreate(
+    formData: // This is a manual edit to allow `FormData` to be passed in directly:
+    | FormData // DO NOT REMOVE THIS!
+      | {
+          files: Array<Blob>;
+          /**
+           * An arbitrary mapping of metadata keys to string values. This can be used to track additional information about the circuit such as an ID from an external system.
+           */
+          meta?: Record<string, string>;
+          /**
+           * Tags for a circuit.
+           */
+          tags?: Array<string>;
+        },
+  ): CancelablePromise<CircuitInfoResponse> {
     return this.httpRequest.request({
       method: "POST",
       url: "/api/v1/circuit/create",
diff '--exclude=request.ts' --recursive --unified src/lib/api/services/InternalService.ts src/lib/api.patched/services/InternalService.ts
--- src/lib/api/services/InternalService.ts	2024-08-12 23:10:36.253929268 +0000
+++ src/lib/api.patched/services/InternalService.ts	2024-08-12 23:10:33.246806199 +0000
@@ -15,6 +15,11 @@
 import type { CancelablePromise } from "../core/CancelablePromise";
 import type { BaseHttpRequest } from "../core/BaseHttpRequest";
 
+// DO NOT REMOVE
+type BinaryResponseType = typeof globalThis extends { ReadableStream: unknown }
+  ? Blob
+  : NodeJS.ReadableStream;
+
 export class InternalService {
   constructor(public readonly httpRequest: BaseHttpRequest) {}
 
@@ -41,7 +46,8 @@
   public circuitDownload(
     circuitId: string,
     path?: string,
-  ): CancelablePromise<any> {
+    // DO NOT REMOVE
+  ): CancelablePromise<BinaryResponseType> {
     return this.httpRequest.request({
       method: "GET",
       url: "/api/v1/circuit/{circuit_id}/download",
@@ -55,6 +61,8 @@
         404: `Not Found`,
         500: `Internal Server Error`,
       },
+
+      responseType: process.env.BROWSER_BUILD ? "blob" : "stream", // DO NOT REMOVE
     });
   }
 
