export type PermissionState = "allow" | "deny" | "ask"; export type BuiltInToolName = "bash" | "read" | "write" | "edit" | "grep" | "find" | "ls"; export type ToolPermissions = Record; export type BashPermissions = Record; export type SkillPermissions = Record; export type SpecialPermissionName = "doom_loop" | "external_directory"; export type SpecialPermissions = Record; export interface PermissionDefaultPolicy { tools: PermissionState; bash: PermissionState; mcp: PermissionState; skills: PermissionState; special: PermissionState; } export interface AgentPermissions { defaultPolicy?: Partial; tools?: ToolPermissions; bash?: BashPermissions; mcp?: ToolPermissions; skills?: SkillPermissions; special?: SpecialPermissions; } export interface GlobalPermissionConfig extends AgentPermissions { defaultPolicy: PermissionDefaultPolicy; } export interface PermissionCheckResult { toolName: string; state: PermissionState; matchedPattern?: string; command?: string; target?: string; source: "tool" | "bash" | "mcp" | "skill" | "special" | "default"; }