Routes each FsOp to the disk responder while a disk root is set (read lazily via the getter, so EditorPage can re-root/clear without rebuilding the long-lived bridge — same pattern as ApiFsResponder's getNoteId), else to the vault responder.
values() — list immediate children of a directory.
getDirectoryHandle(create) — create a directory.
getFile().text()/arrayBuffer() — read a file (base64 when binary).
removeEntry — delete a file or directory.
createWritable().write — write a file (data is base64 when binary).
Routes each FsOp to the disk responder while a disk root is set (read lazily via the getter, so EditorPage can re-root/clear without rebuilding the long-lived bridge — same pattern as ApiFsResponder's getNoteId), else to the vault responder.