File size: 798 Bytes
76289e7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | const COMMAND_SENDER_AUTHORITY = Symbol("openclaw.commandSenderAuthority");
type CommandSenderAuthority = () => string | undefined;
type CommandSenderContext = { [COMMAND_SENDER_AUTHORITY]?: CommandSenderAuthority };
/** Keep the live authority owner through internal context and client copies. */
export function withCommandSenderAuthority<T extends object>(
context: T,
authority: CommandSenderAuthority | undefined,
): T {
return { ...context, [COMMAND_SENDER_AUTHORITY]: authority };
}
export function getCommandSenderAuthority(
context: object | null | undefined,
): CommandSenderAuthority | undefined {
// SAFETY: Only this module-private symbol's typed producer supplies the resolver.
return (context as CommandSenderContext | null | undefined)?.[COMMAND_SENDER_AUTHORITY];
}
|