source dump of claude code
at main 40 lines 1.2 kB view raw
1import z from 'zod/v4' 2// Types extracted to src/types/permissions.ts to break import cycles 3import type { 4 PermissionBehavior, 5 PermissionRule, 6 PermissionRuleSource, 7 PermissionRuleValue, 8} from '../../types/permissions.js' 9import { lazySchema } from '../lazySchema.js' 10 11// Re-export for backwards compatibility 12export type { 13 PermissionBehavior, 14 PermissionRule, 15 PermissionRuleSource, 16 PermissionRuleValue, 17} 18 19/** 20 * ToolPermissionBehavior is the behavior associated with a permission rule. 21 * 'allow' means the rule allows the tool to run. 22 * 'deny' means the rule denies the tool from running. 23 * 'ask' means the rule forces a prompt to be shown to the user. 24 */ 25export const permissionBehaviorSchema = lazySchema(() => 26 z.enum(['allow', 'deny', 'ask']), 27) 28 29/** 30 * PermissionRuleValue is the content of a permission rule. 31 * @param toolName - The name of the tool this rule applies to 32 * @param ruleContent - The optional content of the rule. 33 * Each tool may implement custom handling in `checkPermissions()` 34 */ 35export const permissionRuleValueSchema = lazySchema(() => 36 z.object({ 37 toolName: z.string(), 38 ruleContent: z.string().optional(), 39 }), 40)