/** * Autorização de workspace neste repositório. A implementação chega no prompt 03. * Não há adapter que aprove por omissão: sem implementação, a ação não é autorizada. * `workspaceId` é resolvido no servidor. O cliente não é fonte de autoridade. */ export type WorkspaceRole = "owner" | "admin" | "gestor" | "agent"; export type WorkspaceAction = | "models.read" | "models.write" | "proposals.read" | "proposals.write" | "proposals.generate"; export type AccessDecision = "allowed" | "denied"; export interface WorkspaceAuthorizer { authorize(input: { readonly actorId: string; readonly workspaceId: string; readonly action: WorkspaceAction; }): Promise; }