decisionReasonToOTelSource function

String decisionReasonToOTelSource(
  1. PermissionDecisionReason? reason,
  2. PermissionBehavior behavior
)

Map a PermissionDecisionReason to the OTel source label.

Implementation

String decisionReasonToOTelSource(
  PermissionDecisionReason? reason,
  PermissionBehavior behavior,
) {
  if (reason == null) return 'config';
  switch (reason.type) {
    case 'permissionPromptTool':
      return behavior == PermissionBehavior.allow
          ? 'user_temporary'
          : 'user_reject';
    case 'rule':
      if (reason.rule != null) {
        return ruleSourceToOTelSource(reason.rule!.source, behavior);
      }
      return 'config';
    case 'hook':
      return 'hook';
    default:
      return 'config';
  }
}