MCPcopy Index your code
hub / github.com/codeaashu/claude-code / decisionReasonToString

Function decisionReasonToString

src/components/permissions/hooks.ts:61–95  ·  view source on GitHub ↗
(
  decisionReason: PermissionDecisionReason | undefined,
)

Source from the content-addressed store, hash-verified

59}
60
61function decisionReasonToString(
62 decisionReason: PermissionDecisionReason | undefined,
63): string {
64 if (!decisionReason) {
65 return 'No decision reason'
66 }
67 if (
68 (feature('BASH_CLASSIFIER') || feature('TRANSCRIPT_CLASSIFIER')) &&
69 decisionReason.type === 'classifier'
70 ) {
71 return `Classifier: ${decisionReason.classifier}, Reason: ${decisionReason.reason}`
72 }
73 switch (decisionReason.type) {
74 case 'rule':
75 return `Rule: ${permissionRuleValueToString(decisionReason.rule.ruleValue)}`
76 case 'mode':
77 return `Mode: ${decisionReason.mode}`
78 case 'subcommandResults':
79 return `Subcommand Results: ${Array.from(decisionReason.reasons.entries())
80 .map(([key, value]) => `${key}: ${permissionResultToLog(value)}`)
81 .join(', \n')}`
82 case 'permissionPromptTool':
83 return `Permission Tool: ${decisionReason.permissionPromptToolName}, Result: ${jsonStringify(decisionReason.toolResult)}`
84 case 'hook':
85 return `Hook: ${decisionReason.hookName}${decisionReason.reason ? `, Reason: ${decisionReason.reason}` : ''}`
86 case 'workingDir':
87 return `Working Directory: ${decisionReason.reason}`
88 case 'safetyCheck':
89 return `Safety check: ${decisionReason.reason}`
90 case 'other':
91 return `Other: ${decisionReason.reason}`
92 default:
93 return jsonStringify(decisionReason, null, 2)
94 }
95}
96
97/**
98 * Logs permission request events using analytics and unary logging.

Callers 2

permissionResultToLogFunction · 0.85

Calls 5

featureFunction · 0.85
permissionResultToLogFunction · 0.85
jsonStringifyFunction · 0.85
entriesMethod · 0.80

Tested by

no test coverage detected