contentFingerprint property
String
get
contentFingerprint
Implementation
String get contentFingerprint {
final retainedFingerprint = _contentFingerprintOverride;
if (retainedFingerprint != null && retainedFingerprint.isNotEmpty) {
return retainedFingerprint;
}
final content = <String, Object?>{
'title': title.trim(),
'rationale': rationale.trim(),
'sessionId': sessionId.trim(),
'toolName': toolName.trim(),
if (toolKind?.trim().isNotEmpty == true) 'toolKind': toolKind!.trim(),
'options': options.map((option) => option.trim()).toList(growable: false),
'choices': choices
.map(
(choice) => <String, Object?>{
'optionId': choice.optionId.trim(),
'name': choice.name.trim(),
if (choice.kind?.trim().isNotEmpty == true)
'kind': choice.kind!.trim(),
},
)
.toList(growable: false),
'metadata': _canonicalPermissionValue(metadata),
if (transientPolicyContextFingerprint.isNotEmpty)
'transientPolicyContextHash': transientPolicyContextFingerprint,
};
return sha256.convert(utf8.encode(jsonEncode(content))).toString();
}