File downloads currently buffer the entire response in the frontend before saving. Stream file content through GET /files/:id and let the browser handle the download directly.
Move JSON metadata to GET /files/:id/metadata and rename the backend handler to fetchFileMetadata. Keep inline previews on ?inline=true, with HTTP response behavior confined to the transport layer. Update the SDK, mock routes, and API documentation, and preserve reader cleanup when downloads end or are cancelled.
Validation: backend race suite and authenticated catalog integration tests; frontend and SDK typechecks; 16 SDK tests; Biome checks. Streaming tests cover a 256 MiB source, cancellation, filenames, and content types.
Fixes DRE-41.