prepareInputs method
Implementation
Map<String, dynamic> prepareInputs(Map<String, dynamic> supplied) {
final prepared = Map<String, dynamic>.from(supplied);
for (final entry in inputs.entries) {
final schema = entry.value is Map
? Map<String, dynamic>.from(entry.value as Map)
: <String, dynamic>{'type': entry.value};
if (!prepared.containsKey(entry.key) && schema.containsKey('default')) {
prepared[entry.key] = schema['default'];
}
if (schema['required'] == true && !prepared.containsKey(entry.key)) {
throw FormatException("Missing required input '${entry.key}'.");
}
if (prepared.containsKey(entry.key)) {
_validateValue(prepared[entry.key], schema, entry.key);
}
}
final unknown = prepared.keys.where((key) => !inputs.containsKey(key));
if (unknown.isNotEmpty) {
throw FormatException('Unknown tool input(s): ${unknown.join(', ')}.');
}
return prepared;
}