reconstructContentReplacementState method
Reconstruct replacement state from content-replacement records.
Implementation
ContentReplacementState reconstructContentReplacementState(
List<Message> messages,
List<ContentReplacementRecord> records, {
Map<String, String>? inheritedReplacements,
}) {
final state = createContentReplacementState();
final candidateIds = _collectCandidatesByMessage(
messages,
).expand((g) => g).map((c) => c.toolUseId).toSet();
for (final id in candidateIds) {
state.seenIds.add(id);
}
for (final r in records) {
if (r.kind == 'tool-result' && candidateIds.contains(r.toolUseId)) {
state.replacements[r.toolUseId] = r.replacement;
}
}
if (inheritedReplacements != null) {
for (final entry in inheritedReplacements.entries) {
if (candidateIds.contains(entry.key) &&
!state.replacements.containsKey(entry.key)) {
state.replacements[entry.key] = entry.value;
}
}
}
return state;
}