Caller
Who a request to tcm serve is from: the maintainer (the server's own token, which can do anything), a
contributor (a token tcm user add made, pushing only branches under @<handle>/), or, on a --public server,
a reader with no token, who can pull and read contributions.
export type Caller = | { role: "maintainer" } | { role: "contributor"; handle: string } | { role: "reader" };