normalizeToolInputForAPI function
Strip injected fields before sending to API.
Removes plan/planFilePath from ExitPlanModeV2, and legacy synthetic old_string/new_string from FileEdit when edits array is present.
Implementation
Map<String, dynamic> normalizeToolInputForAPI({
required String toolName,
required Map<String, dynamic> input,
}) {
switch (toolName) {
case 'ExitPlanModeV2':
final result = Map<String, dynamic>.from(input);
result.remove('plan');
result.remove('planFilePath');
return result;
case 'FileEdit':
if (input.containsKey('edits')) {
final result = Map<String, dynamic>.from(input);
result.remove('old_string');
result.remove('new_string');
result.remove('replace_all');
return result;
}
return input;
default:
return input;
}
}